我已经快没有吸引别人的标题了

P1162 填涂颜色

```cpp #include<bits/stdc++.h> using namespace std; int dt[100][100]; int n; bool flag; void move() { for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[i][ii]==-1) { if (dt[i-1][ii]==0) {flag=1;dt[i-1][ii]=-1;} if (dt[i+1][ii]==0) {flag=1;dt[i+1][ii]=-1;} if (dt[i][ii-1]==0) {flag=1;dt[i][ii-1]=-1;} if (dt[i][ii+1]==0) {flag=1;dt[i][ii+1]=-1;} } } } if (flag==0) return; else {flag=0;move();} } int main() { cin>>n; for(int i=1;i<=n;i++) for(int ii=1;ii<=n;ii++) cin>>dt[i][ii]; for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[i][ii]==0) dt[i][ii]=-1; else break; } for(int ii=n;ii>=1;ii--) { if (dt[i][ii]==0) dt[i][ii]=-1; else break; } } for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[ii][i]==0) dt[ii][i]=-1; else break; } for(int ii=n;ii>=1;ii--) { if (dt[ii][i]==0) dt[ii][i]=-1; else break; } } move(); for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[i][ii]==-1) cout<<0<<" "; if (dt[i][ii]==0) cout<<2<<" "; if (dt[i][ii]==1) cout<<1<<" "; } cout<<endl; } } ```
by ⚡小林孑⚡ @ 2018-11-18 21:45:17


同机房资瓷
by nofall @ 2018-11-18 21:47:04


```cpp #include<bits/stdc++.h> using namespace std; const int f[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; int n,a[35][35],b[35][35]; bool check(int x,int y){ if(x<0||x>n+1||y<0||y>n+1) return 0; return !a[x][y]; } void DFS(int t,int x,int y){ a[x][y]=t; for(int i=0;i<4;i++) if(check(x+f[i][0],y+f[i][1])) DFS(t,x+f[i][0],y+f[i][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]),b[i][j]=a[i][j]; DFS(1,0,0); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(!a[i][j]) DFS(2,i,j); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) if(a[i][j]==b[i][j]) printf("1 ");else if(a[i][j]==1) printf("0 ");else printf("2 "); printf("\n"); } return 0; } ```
by nofall @ 2018-11-18 21:47:21


@[zws666](/space/show?uid=119959) 嗝,那可以帮我看看有什么问题吗 加了注释: ```cpp void color(int x,int y) { a[x][y]=2;//涂上2 for(k=0;k<=3;k++)//往4个方向走 { int tx=x+f[k][0],ty=y+f[k][1];//这是走到的位置 if(tx<1||tx>n||ty<1||ty>n||a[tx][ty]!=0)//看看有没有越界,或到了不该到的地方(1上面) continue;//如果有,换个方向走 color(tx,ty);//没有,那就继续走 } return ; }//就是这样 ```
by A_Đark_Horcrux @ 2018-11-18 21:51:23


@[Lonely_people](/space/show?uid=118317) 咳,咳咳
by A_Đark_Horcrux @ 2018-11-18 21:56:48


@[Bilion_冰凌帅](/space/show?uid=54372) 您这是bfs?长见识了
by tocek_shiki @ 2018-11-18 22:03:02


@[Bilion_冰凌帅](/space/show?uid=54372) ```cpp for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[i][ii]==0) dt[i][ii]=2; else break; } for(int ii=n;ii>=1;ii--) { if (dt[i][ii]==0) dt[i][ii]=2; else break; } } for(int i=1;i<=n;i++) { for(int ii=1;ii<=n;ii++) { if (dt[ii][i]==0) dt[ii][i]=2; else break; } for(int ii=n;ii>=1;ii--) { if (dt[ii][i]==0) dt[ii][i]=2; else break; } } ``` 还是用小蒟蒻的for循环吧qwq
by ⚡小林孑⚡ @ 2018-11-18 22:08:33


@[寒炽·刻刻帝](/space/show?uid=49562) ++
by _breeze @ 2018-11-18 22:09:01


@[Bilion_冰凌帅](/space/show?uid=54372) 你的标题成功的吸引了我
by 犇犇犇犇 @ 2018-11-18 22:10:58


@[寒炽·刻刻帝](/space/show?uid=49562) @[zws666](/space/show?uid=119959) DFS啊啊啊,我是想要DFS的代码啊
by A_Đark_Horcrux @ 2018-11-19 12:34:35


| 下一页