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

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

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

接下来nn行,由00和11组成的n \times nn×n的方阵。

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

输出格式:

 

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

 

输入输出样例

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

说明

1≤n≤30

思路:我的思路是先将四周包上一层0,这样就可以搜索到每个地方,一道偏模板的广搜,看代码应该可以理解。

#include
#include
#include
#include
#include
#include
using namespace std;int a[35][35],b[35][35],n,dx,dy;int d[2][4]={ {1,-1,0,0},{0,0,1,-1}};struct node{ int r,c;};void BFS(){ node m; queue
q; m.c=0,m.r=0; q.push(m); while(!q.empty()) { node front=q.front(); q.pop(); for(int i=0;i<4;++i) { dx=front.r+d[0][i]; dy=front.c+d[1][i]; if(dx>=0 && dx<=n+1 && dy>=0 && dy<=n+1 && a[dx][dy]==0) { a[dx][dy]=-1; node m1; m1.r=dx,m1.c=dy; q.push(m1); } } }}int main(){ scanf("%d",&n); for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) scanf("%d",&a[i][j]); for(int i=0;i<=n+1;++i) { a[0][i]=0; a[n+1][i]=0; a[i][0]=0; a[i][n+1]=0; } BFS(); for(int i=1;i<=n;++i) { for(int j=1;j<=n;++j) { if(a[i][j]==-1) printf("0 "); else if(a[i][j]==0) printf("2 "); else printf("%d ",a[i][j]); } printf("\n"); } return 0;}

 

转载于:https://www.cnblogs.com/aerer/p/9930968.html

你可能感兴趣的文章
数据结构之排序三:插入排序
查看>>
Class.forName(),classloader.loadclass用法详解
查看>>
vue route 跳转
查看>>
Device Tree Usage
查看>>
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
POJ 1220 高精度/进制转换
查看>>
cocos2d-x中CCLabelAtlas的小图片拼接
查看>>
【学习笔记】深入理解js原型和闭包系列学习笔记——精华
查看>>
深入理解js——prototype原型
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Ubuntu 安装之python开发
查看>>
恶心的struts标签,等我毕业设计弄完了,瞧我怎么收拾你。
查看>>
Linux中防火墙centos
查看>>
hudson+apachecontinuum+ant
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
实验五 TCP传输及加密
查看>>
【iOS】build diff: /../Podfile.lock: No such file or directory
查看>>
【Android Studio】使用 Genymotion 调试出现错误 INSTALL_FAILED_CPU_ABI_INCOMPATI
查看>>
FancyCoverFlow
查看>>
教你一分钟实现动态模糊效果
查看>>