大佬们,哪里错了

P1162 填涂颜色

为什么你的 dfs 从 $(0,0)$ 出发,但在 dfs 中又写了个 `if (x<1||y>n||x<1||y>n||a[x][y]!=0) return;` 来排除最外面这一圈?
by _saltFish_ @ 2022-08-22 16:19:47


建议自己想想这个 `if` 里面到底该写什么。
by _saltFish_ @ 2022-08-22 16:20:40


main函数改成: ```cpp int main() { cin>>n; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cin>>b[i][j]; if(b[i][j]==0) a[i][j]==0; else a[i][j]==2; } } dfs(1,1); for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { if(a[i][j]==0) cout<<"2"<<" "; else cout<<b[i][j]<<" "; } cout<<endl; } return 0; } ``` 应该可以了。
by __YLX @ 2022-08-22 16:32:45


还有就是输入`b[i]`后的`if(b[i][j]==0) a[i][j]==0;else a[i][j]==2;` 两个`a[i][j]`后各多打了一个等号。。。
by yuanjing @ 2022-08-22 16:34:37


@[YangLX_2021](/user/664760) 不能从`(1,1)`开始吧
by yuanjing @ 2022-08-22 16:37:16


@[yuanjing](/user/574462) orzorz
by Iverson_ @ 2022-08-22 16:39:22


@[JR_ytxy](/user/661044) orzorz
by Iverson_ @ 2022-08-22 16:39:37


@[Iverson_](/user/602519) 得从 $(0,0)$ 开始,把 dfs 的第二行 `if (x<1||y>n||x<1||y>n||a[x][y]!=0) return;` 改成 `if (x<0||y>n+1||x<0||y>n+1||a[x][y]!=0) return;`
by _saltFish_ @ 2022-08-23 08:19:50


再按照 @[yuanjing](/user/574462) 说的改一下就应该没有问题了。
by _saltFish_ @ 2022-08-23 08:22:07


|