样例不对,AC两点?(求调,玄关)

P1162 填涂颜色

renjunying @ 2024-07-28 16:55:35

#include<bits/stdc++.h>
using namespace std;
long long n,i,j,g[10000][10000],v[10000][10000];
void dfs(int x,int y)
{
    if(x>=0&&x<=n+1&&y>=0&&y<=n+1)
    {
        if(g[x][y]==1||g[x][y]==2) return ;
        else
        {
            g[x][y]=2;
            dfs(x+1,y); 
            dfs(x-1,y);
            dfs(x,y+1);
            dfs(x,y-1);
        }
    }
    return;
}
int main()
{
    cin>>n;
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
        {
            cin>>g[i][j];
            g[i][j]=2-g[i][j];
        }   
    }       
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            if(g[i][j]==2&&!v[i][j]) dfs(i,j);
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<n;j++)
            printf("%d ",g[i][j]);
        puts("");   
    }
    return 0;
}

正确输出

0 0 0 0 0 0
0 0 1 1 1 1
0 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1

我的

2 2 2 2 2 2
2 2 1 1 1 1
2 1 1 2 2 1
1 1 2 2 2 1
1 2 2 2 2 1
1 1 1 1 1 1

by yhxyd01352 @ 2024-07-28 16:56:31

可能只是随机数据刚好让你过了


by renjunying @ 2024-07-28 16:57:06

@yhxyd01352 也许吧...


|