模拟+灌水——填涂颜色
来源:互联网 发布:怎样加入淘宝全球购 编辑:程序博客网 时间:2024/05/01 08:45
题目来源
洛谷P1162填涂颜色
https://www.luogu.org/problem/show?pid=1162
思路
由于方阵中只有一个闭合圈 所以所有不在圈中的空间都可以从方阵外部到达
所以可以用从外部模拟灌水的方法 所有可以从外部不能到达的空间即为圈内空间
从外部进行深搜 标记可以到达的点(圈外点)为2 则圈边沿仍为1 圈内仍为0
输出时 根据题目要求 圈外点为0 圈边沿为1 圈内为0
所以输出(2-该点标记)即可
代码(C++)
#include <cstdio>using namespace std;int n,k[35][35];int mx[5]={0,-1,0,0,1},my[5]={0,0,-1,1,0};inline void search(int x,int y);int main(){scanf("%d",&n);for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)scanf("%d",&k[i][j]);for(int i=1;i<=n;++i)if(k[1][i]==0)search(1,i);for(int i=2;i<n;++i){if(k[i][1]==0)search(i,1);if(k[i][n]==0)search(i,n);}for(int i=1;i<=n;++i)if(k[n][i]==0)search(n,i);for(int i=1;i<=n;++i){for(int j=1;j<=n;++j)printf("%d ",2-k[i][j]);printf("\n");}return 0;}inline void search(int x,int y){k[x][y]=2;for(int i=1;i<=4;++i){int xx=x+mx[i],yy=y+my[i];if(xx<=0||yy<=0||xx>n||yy>n||k[xx][yy]!=0)continue;search(xx,yy);}}
阅读全文
1 0
- 模拟+灌水——填涂颜色
- 广度优先搜索——填涂颜色
- [luogu1162 填涂颜色]
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- P1162 填涂颜色
- 洛谷P1162 填涂颜色
- 洛谷 1162 填涂颜色
- 洛谷 P1162 填涂颜色
- 洛谷P1162 填涂颜色
- 填涂颜色-洛谷 1162
- 洛谷 P1162 填涂颜色
- 洛谷 P1162 填涂颜色
- 0820 T1 填涂颜色
- 逻辑回归
- 联想K50-T5/联想乐檬K3 Note组合键进入recovery模式的方法教程
- / Vijos / 题库 / 夜夜的NOIP之旅 P1964
- ubuntu下卸载python2和升级python3.5
- HDU 2204 Eddy's爱好(容斥)
- 模拟+灌水——填涂颜色
- 【AJAX】跨域问题
- hdu 1828 Picture
- 观光公交
- 3. 机器学习基石-When can Machine Learn?
- POJ 2305 Basic remains——Java进制转换
- sonar扫描非maven项目
- 4. 机器学习基石-When can Machine Learn?
- ucos-iii学习之挂起队列