int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0}; int n; int flag; void dfs(int x, int y){ st[x][y] = 1; for(int i = 0; i < 4; i ++){ int a = x + dx[i], b = y + dy[i]; if(a < 0 || b < 0 || a >= n || b >= n) continue; if...
洛谷P1162 填涂颜色 一念错误终身关注IP属地: 重庆 0.0372020.02.13 22:32:17字数275阅读227 思路:本题对于某一个零而言,就是找一条能否到达边界的路,如果有这么一条路那么说明这个零(这条路使用BFS找到的,毕竟本题是在广度搜索模块中),没有被包围,即不用变成二,同时该零所有能够通过一条路径到达的零都没有...
将边缘的0都变为3(其他数也行,只要不是0,1就行),然后如果是3,dfs,搜到0的话变为3,最后输出的时候如果是3输出0,是1输出1,0输出2,over!!! 代码: #include <iostream>#include<cstdio>usingnamespacestd;intn;intmap[31][31];intdx[4] = {0,0,1,-1}, dy[4] = {1,-1,0,0};voiddfs(in...