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 也许吧...