博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷P1162
阅读量:5327 次
发布时间:2019-06-14

本文共 1755 字,大约阅读时间需要 5 分钟。

P1162 填涂颜色

原题如下

由数字0组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向。现要求把闭合圈内的所有空间都填写成2.例如:6×6的方阵(n=6),涂色前和涂色后的方阵如下:

0 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 1
0 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1 1 1 1

输入格式

每组测试数据第一行一个整数n(1n30)

接下来n行,由01组成的n×n的方阵。

方阵内只有一个闭合圈,圈内至少有一个0

输出格式

已经填好数字2的完整方阵。

输入输出样例

输入 #1复制
60 0 0 0 0 00 0 1 1 1 10 1 1 0 0 11 1 0 0 0 11 0 0 0 0 11 1 1 1 1 1
输出 #1复制
0 0 0 0 0 00 0 1 1 1 10 1 1 2 2 11 1 2 2 2 11 2 2 2 2 11 1 1 1 1 1

说明/提示

1n30

 

具体的做题想法!!!

这道题和洛谷P1506很相似,都是染色的题(搜索)。什么是染色呢,就比如有一片墙,将一个区域围起来,你要做的是把这片区域里的数字/字符全部改成其他东西。

这种题一般就要用搜索,我一般喜欢用DFS(听说大佬都是DFS加剪枝??)。

对于这道题,它要求我们把区域内改为数字“2”。表面上看上去外围有“0”,“1”两种数字,但是我们仔细一想,这两种数字其实作用是一样的,都是起到了“墙”的作用。

所以我们果断把他们都赋值为0,写DFS即可。

ps:记得在DFS里加入回溯条件和边界条件!不然它会一直跑停不下来!

代码如下:

1 #include
2 #include
3 using namespace std; 4 int map[50][50],check[50][50],n; 5 int dy[5]={
0,0,0,-1,1}; 6 int dx[5]={
0,-1,1,0,0}; 7 void dfs(int x,int y) 8 { 9 if(x<0||x>n+1||y<0||y>n+1||check[x][y]!=0)10 return;11 check[x][y]=1;12 for(int i=1;i<=4;i++)13 {14 dfs(x+dx[i],y+dy[i]);15 }16 17 }18 int main()19 {20 cin>>n;21 for(int i=1;i<=n;i++)22 {23 for(int j=1;j<=n;j++)24 {25 cin>>map[i][j];26 if(map[i][j]==0)27 check[i][j]=0;28 else check[i][j]=2;29 }30 }31 dfs(0,0);32 for(int i=1;i<=n;i++)33 {34 for(int j=1;j<=n;j++)35 {36 if(check[i][j]==0)37 {38 cout<<2<<' ';39 }40 else41 cout<
<<' ';42 }43 cout<

 

 

转载于:https://www.cnblogs.com/mo-qian/p/11273841.html

你可能感兴趣的文章
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
eclipse-将同一个文件分屏显示
查看>>
mysql5.x升级至mysql5.7后导入之前数据库date出错的解决方法!
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>