社区讨论
为什么RE?
P1162填涂颜色参与者 4已保存回复 24
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 24 条
- 当前快照
- 1 份
- 快照标识符
- @mi7rnbs2
- 此快照首次捕获于
- 2025/11/21 02:29 4 个月前
- 此快照最后确认于
- 2025/11/21 02:45 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a[10001][10001],b[10001][10001];
void dfs(int x,int y)
{
if(x>n||x<1||y>n||y<1||a[x][y]!=0)
return ;
dfs(x+1,y);
dfs(x-1,y);
dfs(x,y+1);
dfs(x,y-1);
}
int read() {
int ans=0,flag=1;
char ch=getchar();
while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
if(ch=='-') flag=-1,ch=getchar();
while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
return ans*flag;
}
int main()
{
n=read();
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
a[i][j]=read();
if(a[i][j]==1)b[i][j]=-1;
}
for(int i=1;i<=n;i++)
{
if(a[i][1]!=1) dfs(i,1);
if(a[i][n]!=1) dfs(i,n);
}
for(int i=1;i<=n;i++)
{
if(a[1][i]!=1) dfs(1,i);
if(a[n][i]!=1) dfs(n,i);
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j]==-1)printf("1 ");
else
if(a[i][j]==0)printf("2 ");
else
printf("0 ");
}
cout<<endl;
}
printf("\n");
return 0;
}
回复
共 24 条回复,欢迎继续交流。
正在加载回复...