欢迎使用CSDN-markdown编辑器
来源:互联网 发布:淘宝网婴儿用品 编辑:程序博客网 时间:2024/06/10 12:40
P1451 求细胞数量
题目描述
一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右若还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。(1<=m<=80,1<=n<=50)
输入输出格式
输入格式:
输入:整数m,n(m行,n列)矩阵
输出格式:
输出:细胞的个数
输入输出样例
输入样例#1:
4 10
0234500067
1034560500
2045600671
0000000089
输出样例#1:
4
const xx:array[1..4]of longint=(1,-1,0,0);
yy:array[1..4]of longint=(0,0,1,-1);
var map:array[-1..1000,0..1000]of boolean;
count,n,m,i,j:longint;
ch:char;
h:array[0..1000,1..2]of longint;
procedure bfs(x,y:longint);
var head,tail,a,b,i:longint;
begin
inc(count);
head:=0;tail:=1;
map[x,y]:=false;
h[1,1]:=x;h[1,2]:=y;
while head<=tail do
begin
inc(head);
for i:=1 to 4 do
begin
a:=h[head,1]+xx[i];b:=h[head,2]+yy[i];
if map[a,b] and (a>=1) and (a<=n) and (b>=1) and (b<=m)then
begin
inc(tail);
h[tail,1]:=a;h[tail,2]:=b;
map[a,b]:=false;
end;
end;
end;
end;
begin
readln(n,m);
fillchar(map,sizeof(map),true);
for i:=1 to n do
begin
for j:=1 to m do
begin
read(ch);
if ch=’0’ then map[i,j]:=false;
end;
readln;
end;
count:=0;
for i:=1 to n do
for j:=1 to m do
if map[i,j] then begin bfs(i,j);end;
writeln(count);
end.
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- C#跨线程操作控件的线程安全方法
- "1,问题: 应用长期在后台的场景下,进入前台时,fragment显示为空白 2,app框架大体实现: 1个activity+多个Fragment,使用的是add()方法以及 hide(),show(
- java类与对象
- java容器总结
- 来自2016年11月份的.ISO---软考结束
- 欢迎使用CSDN-markdown编辑器
- break和Continue
- CYLTabBarController是怎么通过self.viewController访问该方法的?
- spring <context:component-scan>使用说明
- IO流的种类
- Java NIO(1)
- C++强制类型转换
- JavaSE,JavaEE,JavaME的区别
- 严版快速排序Partion方法