我基本思路是找边路然后标记边路和1,
最后找未标记的,是不是这一步超时了
by wangyansong @ 2019-08-03 21:31:22
蒟蒻前来围观
by w2Tao @ 2019-08-03 21:33:50
其实边上的点不会被围起来
by w2Tao @ 2019-08-03 21:34:24
你从边上为0的点开始bfs,搜到的点标记为1,结束后剩下的0就是被围起来的
by w2Tao @ 2019-08-03 21:36:21
@[tlzx](/space/show?uid=122971) 是哒大佬,我跟你是一样的,会超时
by wangyansong @ 2019-08-03 21:38:35
其实基本只需一次bfs就可以了
by w2Tao @ 2019-08-03 21:43:42
@[tlzx](/space/show?uid=122971) 一开始在判断的时候一次bfs
发现i,j循环是会判重;
关键是bfs什么,bfs(i,j)吗
if(((!a[i][1])&&!b[i][1])||(!b[1][j]&&!a[1][j])||(!b[i][n]&&!a[i][n])||(!b[n][j]&&!a[n][j]))
bfs(i,j)
by wangyansong @ 2019-08-03 21:50:04
```cpp
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==1||i==n||j==1||j==n&&!b[i][j])
{
bfs(i,j);
}
}
}
```
by w2Tao @ 2019-08-03 21:50:07
试试
by w2Tao @ 2019-08-03 21:50:22
谢谢你
6
0 0 1 1 1 0
1 1 1 0 1 0
1 0 0 0 0 1
1 1 0 1 1 1
0 1 0 1 0 0
0 1 1 1 0 0
测试2出现问题
0 0 1 1 1 0
1 1 1 0 1 0
1 0 2 2 2 1
1 1 2 1 1 1
0 1 0 1 0 0
0 1 1 1 0 0
by wangyansong @ 2019-08-03 21:53:38