17:最好的草
最编程
2024-03-28 22:54:56
...
17:最好的草
总时间限制: 10000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB描述
奶牛Bessie计划好好享受柔软的春季新草。新草分布在R行C列的牧场里。它想计算一下牧场中的草丛数量。
在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相邻两个“#”。给定牧场地图,计算有多少个草丛。
例如,考虑如下5行6列的牧场地图
.#....
..#...
..#..#
...##.
.#....
这个牧场有5个草丛:一个在第一行,一个在第二列横跨了二、三行,一个在第三行,一个在第四行横跨了四、五列,最后一个在第五行。
输入第一行包含两个整数R和C,中间用单个空格隔开。 接下来R行,每行C个字符,描述牧场地图。字符只有“#”或“.”两种。(1 <= R, C <= 100 )输出输出一个整数,表示草丛数。样例输入
5 6
.#....
..#...
..#..#
...##.
.#....
样例输出
5
来源USACO Open 2008 Bronze
1 #include<iostream>
2 #include<cstdio>
3 #include<cstdlib>
4 using namespace std;
5 char a[1001][1001];
6 int now=1;
7 int m_tot=0;
8 int z_tot=0;
9 int ans=0;
10 int main()
11 {
12 int n,m;
13 cin>>n>>m;
14 for(int i=0;i<n;i++)
15 {
16 for(int j=0;j<m;j++)
17 {
18 cin>>a[i][j];
19 }
20 }
21 for(int i=0;i<n;i++)
22 {
23 for(int j=0;j<m;j++)
24 {
25 if(a[i][j]=='#')
26 {
27 if(a[i+1][j]=='#')
28 {
29 a[i][j]='.';
30 a[i+1][j]='.';
31 ans++;
32 }
33 else if(a[i-1][j]=='#')
34 {
35 a[i][j]='.';
36 a[i+1][j]='.';
37 ans++;
38 }
39 else if(a[i][j+1]=='#')
40 {
41 a[i][j]='.';
42 a[i][j+1]='.';
43 ans++;
44 }
45 else if(a[i][j-1]=='#')
46 {
47 a[i][j]='.';
48 a[i+1][j]='.';
49 ans++;
50 }
51 else
52 {
53 a[i][j]='.';
54 ans++;
55 }
56 }
57 }
58 }
59 cout<<ans;
60 return 0;
61 }
推荐阅读
-
996年还是当今科技最好的时代吗?| 刘江访谈
-
形容草的好词好句 (反义词)
-
Java中的 JDK8、JDK11、JDK17 该如何选择?
-
JDK8 和 JDK17 安装切换,IDEA 配置多个版本的 JDK
-
询问 无法找到 JDK 17 支持的 Gradle 版本。Gradle 支持 JDK 版本 7 到 16 EN
-
Mac 上最好的 Markdown 文本编辑器是什么?
-
iOS17 升级后 iPhone 无法访问 App Store 的解决方案
-
将 VMware17 虚拟机英文设置为中文而无需重新安装的方法
-
1.6K Star开源一个功能强大的问卷调查系统,也许是当前开源里面最好的。
-
它就是 Mac 上最好的 SSH 工具!