填涂颜色

题目描述

由数字 000 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 111 构成,围圈时只走上下左右 444 个方向。现要求把闭合圈内的所有空间都填写成 222。例如:6×66\times 66×6 的方阵(n=6n=6n=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

输入格式

每组测试数据第一行一个整数 n(1≤n≤30)n(1 \le n \le 30)n(1≤n≤30)。

接下来 nnn 行,由 000 和 111 组成的 n×nn \times nn×n 的方阵。

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

//感谢黄小U饮品指出本题数据和数据格式不一样. 已修改(输入格式)

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #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

提示

对于 100%100\%100% 的数据,1≤n≤301 \le n \le 301≤n≤30。

分析

搜索

代码

#include<bits/stdc++.h>using namespace std;int a[40][40],b[40][40];int dx[5]={0,-1,1,0,0};int dy[5]={0,0,0,-1,1};//习惯下标从1开始 int n;
void dfs(int p,int q)
{if(p<0||p>n+1||q<0||q>n+1||a[p][q]!=0) {return;//如果是边界或者已经被搜过了或者本来就是墙的就反回}a[p][q]=1;//标记,染色for(int i=1;i<=4;i++) {dfs(p+dx[i],q+dy[i]);//向四个方向搜索}
}int main()
{cin>>n;for(int i=1;i<=n;i++){for (int j=1;j<=n;j++){cin>>b[i][j];if(b[i][j]==0) {a[i][j]=0;}else {a[i][j]=2;}}}dfs(0,0);//搜索for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){if(a[i][j]==0) {cout<<2<<' ';//没搜到 }else { cout<<b[i][j]<<' ';} }cout<<endl;}return 0;
}

洛谷 P1162 填涂颜色相关推荐

  1. 洛谷P1162 填涂颜色(Python搜索)

    P1162 填涂颜色https://www.luogu.com.cn/problem/P1162 题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方 ...

  2. 洛谷p1162填涂颜色(dfs写法)

    这道题本是放在试炼场bfs里的,但是我觉得dfs好写些 所以就用dfs过了 题目如下 题目描述 由数字0 组成的方阵中,有一任意形状闭合圈,闭合圈由数字1构成,围圈时只走上下左右4个方向.现要求把闭合 ...

  3. 洛谷 P1162 填涂颜色题解

    题目描述 由数字00组成的方阵中,有一任意形状闭合圈,闭合圈由数字11构成,围圈时只走上下左右44个方向.现要求把闭合圈内的所有空间都填写成22.例如:6 \times 66×6的方阵(n=6n=6) ...

  4. 洛谷 P1162 填涂颜色 C++ 深搜 染色法

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

  5. 洛谷P1162 填涂颜色

    题目链接:https://www.luogu.org/problemnew/show/P1162 这道题是LITTLESUN写的第一道BFS哦! 对于这道题的的思路是把封闭图形外边的0标记一边,在最后 ...

  6. 洛谷 P1162 填涂颜色-dfs染色法

    输入: 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 ...

  7. 洛谷 P1162填图颜色

    洛谷 P1162填图颜色 题目链接 #include <bits/stdc++.h> using namespace std; int xx[] = {0, -1, 0, 1}; int ...

  8. P1162 填涂颜色问题(广度优先搜索BFS)

    # 填涂颜色 ## 题目描述 由数字 $0$ 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 1 构成,围圈时只走上下左右 4 个方向.现要求把闭合圈内的所有空间都填写成 2.例如:6*6$的方阵(n ...

  9. P1162 填涂颜色

    填涂颜色 题目描述 由数字 000 组成的方阵中,有一任意形状闭合圈,闭合圈由数字 111 构成,围圈时只走上下左右 444 个方向.现要求把闭合圈内的所有空间都填写成 222.例如:6×66\tim ...

最新文章

  1. 利用XtraBackup做mysql不停机重做主从复制
  2. spark rdd map java_如何在spark RDD(JavaRDD)中获取记录的文件名
  3. 关于java的public,private,protect,以及默认权限的理解
  4. Scalaz(44)- concurrency :scalaz Future,尚不完整的多线程类型
  5. 【计算机网络】详解HttpURLConnection
  6. react实战项目_React实战之React+Redux实现一个天气预报小项目
  7. CSS3实现button:hover时background-color从左慢慢移动到右边
  8. ncurses键盘管理:cbreak,keypad,getch(),KEY_F(),clrtoeol()
  9. Python爬虫小白入门(六)爬取披头士乐队历年专辑封面-网易云音乐
  10. 华为程序员:加了六天班,加班费一万四,网友:我能加到它破产
  11. 【面向对象】UML类图、用例图、顺序图、活动图、状态图、通信图、构件图、部署图
  12. Linux之shell脚本编程、多命令、脚本、bc计算器、反引号、if语句、for语句
  13. qq游戏坦大战服务器维护中,高手教你如何解决QQ游戏问题
  14. C++线程池原理及创建
  15. 群晖nas安装php,在群晖NAS上运行URLOS之后竟然能安装Discuz! Q!!
  16. 学习人工智能必读这30本书!
  17. 下载iCloud照片/文件的正确姿势(亲测好使)
  18. 2. Bean Validation声明式校验方法的参数、返回值
  19. java双语试卷_Java程序设计基础(双语)答案试题题目及答案,期末考试题库,章节测验答案...
  20. python读取只读word只读_10.9 只读数据库(Read-only Database)

热门文章

  1. Android 滑动侧边栏(Sliding Menu)第一种实现 - 2 手动滚动+自动滚动 + 事件处理
  2. cas:174501-64-5|1-丁基-3-甲基咪唑六氟磷酸盐|[C4MIm]PF6离子液体
  3. 投资理财-投资难的秘密
  4. 射频天线设计-802.11初识
  5. 如何解决QQ飞车win10蓝屏问题
  6. 浅谈大数据业务处理流程
  7. 用Vue制作简易音乐播放器(超详细)
  8. 百度地图API首页数字动态改变特效jquery特效
  9. html春节祝福烟花,《烟花AR》用ARkit带来浪漫情人节和新春祝福
  10. SAP中物料价格改变导致的库存价值变动业务分析