灵异事件
查看原帖
灵异事件
965351
NC20061226楼主2024/7/14 21:31

记录一 & 记录二。

记录一代码如下:

#include<cstdio>
int n,ans,a[31][31];

void dfs(int x,int y){
    if(x<1||y<1||x>n||y>n)
        return;
    if(a[x][y]==1||a[x][y]==2)
        return;
    a[x][y]=2;
    dfs(x+1,y);
    dfs(x-1,y);
    dfs(x,y+1);
    dfs(x,y-1);
}

int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
            scanf("%d",&a[i][j]);
    dfs(1,1);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(a[i][j]==0) printf("2 ");
            else if(a[i][j]==2) printf("0 ");
            else printf("1 ");
        }
        printf("\n");
    }
    return 0;
}

此时 #5 AC,发现了亿些问题,所以修改了一下代码。

记录二代码如下:

#include<cstdio>
int n,ans,a[32][32];

void dfs(int x,int y){
    if(x<1||y<1||x>n+2||y>n+2)
        return;
    if(a[x][y]==1||a[x][y]==2)
        return;
    a[x][y]=2;
    dfs(x+1,y);
    dfs(x-1,y);
    dfs(x,y+1);
    dfs(x,y-1);
}

int main(){
    scanf("%d",&n);
    for(int i=2;i<=n+1;i++)
        for(int j=2;j<=n+1;j++)
            scanf("%d",&a[i][j]);
    //printf("\n");        
    dfs(1,1);
    for(int i=2;i<=n+1;i++){
        for(int j=2;j<=n+1;j++){
            if(a[i][j]==0) printf("2 ");
            else if(a[i][j]==2) printf("0 ");
            else printf("1 ");
        }
        printf("\n");
    }
    return 0;
}

此时 #5 变成了“to short on line 1.”。

什么?输出太短了?我下载了一下样例,发现输出与样例输出完全相同,再洛谷 IDE 上测试也一样,完全没有出现缺少空格、输出的情况,请问为什么?感谢大佬!

2024/7/14 21:31
加载中...