P1162 填涂颜色 洛谷
题目描述
由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下:
0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 0 0 1 1 1 1
0 1 1 0 0 1 0 1 1 2 2 1
1 1 0 0 0 1 1 1 2 2 2 1
1 0 0 0 0 1 1 2 2 2 2 1
1 1 1 1 1 1 1 1 1 1 1 1
输入输出格式
输入格式:
每组测试数据第一行一个整数:n。其中n(1<=n<=30)
接下来n行,由0和1组成的nXn的方阵。
方阵内只有一个闭合圈,圈内至少有一个0。
//感谢黄小U饮品指出本题数据和数据格式不一样. 已修改(输入格式)
输出格式:
已经填好数字2的完整方阵。
输入输出样例
6 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 1 1 1 1 0 1 1 2 2 1 1 1 2 2 2 1 1 2 2 2 2 1 1 1 1 1 1 1
说明
1<=n<=30
题解
相信刚刚看这个题的人都很懵逼,之后看了下题解 , 也没看懂别人的代码,主要就是一句话, 不用找圈内的2,只需要找圈外的0就好了 然后 这个题就变得和水池数目差不多了 = = 一个搜索的方法 #include<iostream> #include<cmath> #include <cstring> using namespace std; ][]; ][]; ][]; //主要作用就是标记 ,加快下速度, 要保持好习惯 int n; void dfs(int x,int y) //和经典简单搜索的水池数目一样的搜索方法 { ) return ; dp[x][y]=; p[x][y]='; //标记连在一起的0 >&&y>&&x+<=n&&y<=n&&d[x+][y]==,y); &&y->&&x<=n&&y-<=n&&d[x][y-]==); >&&y>&&x-<=n&&y<=n&&d[x-][y]==,y); &&y->&&x<=n&&y-<=n&&d[x][y-]==); } int main() { while(cin>>n) { memset(dp,,sizeof(dp)); memset(d,',sizeof(d)); ;i<=n;i++) { ;j<=n;j++) { cin>>d[i][j]; } } memset(p,',sizeof(p)); //主要就是这一步智商比较高 ;i<=n;i++) { ;j<=n;j++) { '; } } ;i<=n+;i++) dfs(,i); //四个循环 查四个临界的0, 然后搜圈外的0 ;i<=n+;i++) dfs(i,); ;i<=n+;i++) dfs(n+,i); ;i<=n+;i++) dfs(i,n+); ;i<=n;i++) { ;j<=n;j++) { cout<<p[i][j]<<' '; } cout<<endl; } } }
从边缘DFS,把圈外的0都记录下,最后没记录的就是圈内的0,不过一开始没想到。。。 #include<cstdio> #include<iostream> using namespace std; ][],vis[][];//大小n*n,图,是否访问过 void dfs(int i,int j)//求联通块 { ||i>n || j< || j>n)return; vis[i][j]=; dfs(i-,j);dfs(i+,j);dfs(i,j+);dfs(i,j-); } int main() { cin>>n; ;i<=n;i++);j<=n;j++)scanf("%d",&map[i][j]); //贪心,从边缘DFS一定能把所有外面的0都访问过 ;i<=n;i++){dfs(,i);dfs(n,i);} ;i<n;i++){dfs(i,);dfs(i,n);} ;i<=n;i++) { ;j<=n;j++)); :); cout<<"\n"; } ; }
P1162 填涂颜色 洛谷的更多相关文章
- 填涂颜色 洛谷 p1162
题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和涂色后的方阵如下: 0 ...
- 洛谷 P1162 填涂颜色 DFS
P1162 填涂颜色 https://www.luogu.com.cn/problem/P1162 qaq搜索好抽象啊,蒟蒻表示难以理解,搞半天才做出来一道题,很挫败www 思路 染色法.找墙壁外的连 ...
- luogu P1162 填涂颜色 x
P1162 填涂颜色 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合圈内的所有空间都填写成2.例如:6X6的方阵(n=6),涂色前和 ...
- 洛谷P1162—填涂颜色
这应该是是第一次记录洛谷题库里的题目吧: 题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \ ...
- 洛谷 P1162 填涂颜色
题目链接:https://www.luogu.org/problemnew/show/P1162 题目描述由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要 ...
- 洛谷 P1162 填涂颜色【DFS】
题目链接:https://www.luogu.org/problemnew/show/P1162 题目描述 由数字 0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 ...
- 洛谷—— P1162 填涂颜色
https://www.luogu.org/problem/show?pid=1162 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭 ...
- 洛谷 P1162 填涂颜色题解
题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6) ...
- 洛谷P1162 填涂颜色【bfs】
题目链接:https://www.luogu.org/problemnew/show/P1162 题意: 有一个0和1组成的矩阵,一些1组成一个闭合圈,圈住一些0,现在要把被圈住的这些0变成2输出. ...
随机推荐
- 【CF Round 434 B. Which floor?】
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- Reasons to use innodb_file_per_table
When working with InnoDB, you have two ways for managing the tablespace storage: Throw everything in ...
- URAL1277 Cops and Thieves(最小割)
Cops and Thieves Description: The Galaxy Police (Galaxpol) found out that a notorious gang of thieve ...
- Death Note
注:本文系作者原创,但可随意转载. ********************************************************************************** ...
- Docker Community Edition for CentOS
Docker CE for CentOS Docker CE for CentOS distribution is the best way to install the Docker platfor ...
- [Python]安装完pip、pygame后,仍然import pygame报错
按照<python编程从入门到实践>上的教程下载了pygame的whl文件进行安装, 在cmd窗口里import pygame提示无错误,在IDEL里程序也能正常运行, 但是pycharm ...
- c++对拍实现
直接上代码吧. #include<bits/stdc++.h> using namespace std; int main(){ while(1){ system("./cute ...
- bzoj3127/3697 [Usaco2013 Open]Yin and Yang
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3127 http://www.lydsy.com/JudgeOnline/problem.ph ...
- Android 性能优化 - 详解内存优化的来龙去脉
前言 APP内存的使用,是评价一款应用性能高低的一个重要指标.虽然现在智能手机的内存越来越大,但是一个好的应用应该将效率发挥到极致,精益求精. 这一篇中我们将着重介绍Android的内存优化.本文的篇 ...
- [bzoj3994][SDOI2015]约数个数和-数论
Brief Description 计算\(\sum_{i\leqslant n}\sum_{j\leqslant m}\sigma_0(ij)\). Algorithm Design 首先证明一个结 ...