【重走普及路】【xfs】填充颜色
2015-12-27 12:40
344 查看
题目描述
由数字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。
输出格式:
已经填好数字2的完整方阵。
输入输出样例
输入样例#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
说明
1<=n<=30虽然这道题标签是bfs,打的都不知道是什么fs了。。。
读入时把0改成2,然后每找到一个2,进行一次xfs。。。弄个队列把能达到的点都加进去,如果搜到边界,把队列里的赋为0
(机智如我)
</pre><pre name="code" class="plain">
const fx:array[1..4,1..2] of integer=((1,0),(0,1),(-1,0),(0,-1)); type sz=record x:longint; y:longint; end; var n,i,j,t,k:longint; p:boolean; f:array[1..900] of sz; a,b:array[1..31,1..31] of longint; procedure ok(x,y:longint); var i,x1,y1:longint; begin for i:=1 to 4 do begin x1:=x+fx[i,1]; y1:=y+fx[i,2]; if (x1>=1)and(x1<=n)and(y1>=1)and(y1<=n)and(a[x1,y1]=2)and(b[x1,y1]=0) then begin inc(t); f[t].x:=x1; f[t].y:=y1; b[x1,y1]:=1; ok(x1,y1); end else if (x1<1)or(x1>n)or(y1<1)or(y1>n) then begin p:=false; end; end; end; begin readln(n); for i:=1 to n do begin for j:=1 to n do begin read(a[i,j]); if a[i,j]=0 then a[i,j]:=2; end; readln; end; for i:=1 to n do begin for j:=1 to n do begin if a[i,j]=2 then begin p:=true; t:=1; fillchar(f,sizeof(f),0); fillchar(b,sizeof(b),0); b[i,j]:=1; f[1].x:=i; f[1].y:=j; ok(i,j); if not p then for k:=1 to t do a[f[k].x,f[k].y]:=0; end; end; end; for i:=1 to n do begin for j:=1 to n do write(a[i,j],' '); writeln; end; {q1:=1; q2:=1; while q1<=q2 do begin q3:=q2+1; for i:=q1 to q2 do begin end; end; } end.
相关文章推荐
- 搜狗百度360市值齐跌:搜索引擎们陷入集体焦虑?
- 本人即将筹备败家日志,敬请期待!
- IE:使用搜索助手
- C++深度优先搜索的实现方法
- 基于文本的搜索
- php实现搜索一维数组元素并删除二维数组对应元素的方法
- 使用Sphinx对索引进行搜索
- asp 多关键词搜索的简单实现方法
- C#使用foreach语句搜索数组元素的方法
- JavaScript中数组的排序、乱序和搜索实现代码
- C#编程实现Excel文档中搜索文本内容的方法及思路
- sqlserver中在指定数据库的所有表的所有列中搜索给定的值
- 可以用来搜索当前页面内容的js代码
- 全文搜索和替换
- javascript搜索自动提示功能的实现第1/3页
- mysql 模糊搜索的方法介绍
- C#搜索文字在文件及文件夹中出现位置的方法
- 基于ajax的简单搜索实现方法
- Android自定义View软键盘实现搜索
- 基于ASP.NET的lucene.net全文搜索实现步骤