首页 > 编程语言 >数据读入的问题 flood fill算法

数据读入的问题 flood fill算法

时间:2022-10-03 10:33:05浏览次数:63  
标签:.. 单元格 WW flood 读入 池塘 回车 fill

1097. 池塘计数

农夫约翰有一片 N∗MN∗M 的矩形土地。

最近,由于降雨的原因,部分土地被水淹没了。

现在用一个字符矩阵来表示他的土地。

每个单元格内,如果包含雨水,则用”W”表示,如果不含雨水,则用”.”表示。

现在,约翰想知道他的土地中形成了多少片池塘。

每组相连的积水单元格集合可以看作是一片池塘。

每个单元格视为与其上、下、左、右、左上、右上、左下、右下八个邻近单元格相连。

请你输出共有多少片池塘,即矩阵中共有多少片相连的”W”块。

输入格式

第一行包含两个整数 NN 和 MM。

接下来 NN 行,每行包含 MM 个字符,字符为”W”或”.”,用以表示矩形土地的积水状况,字符之间没有空格。

输出格式

输出一个整数,表示池塘数目。

数据范围

1≤N,M≤10001≤N,M≤1000

输入样例:

10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.

输出样例:

3
数据再读入的时候
方法一:
scanf("%d%d",&n,&m);
 getchar();
 for(int i=1;i<=n;i++)
  {
       for(int j=1;j<=m;j++)
	   scanf("%c",&str[i][j]);
           getchar();
  }    

注意的是:n, m后边有一个回车,输入m的时候,后边是一个回车,所以光标还在回车之前,先进行getchar(),每行的数据都有回车,都会采用getchar()

方法二:

scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)scanf("%s",str[i]+1);

%d读入的时候会先判断是否为整形,如果不是往后走,直到需要等到就是为整形

注意二维数组可以进行这样输入str[i][j+1]还是回车

 

标签:..,单元格,WW,flood,读入,池塘,回车,fill
From: https://www.cnblogs.com/qianchangxiaozhushenyi/p/16750122.html

相关文章