追们算法----奶牛和草丛
说明
奶牛Bessie计划好好享受柔软的春季新草。新草分布在R行C列的牧场里。它想计算一下牧场中的草丛数量。
在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相邻多个“#”。给定牧场地图,计算有多少个草丛。
例如,考虑如下5行6列的牧场地图
.#....
..#...
..#..#
....##
.....#
这个牧场有3个草丛:一个在第一行,一个在第二列横跨了二、三行,一个在第三行横跨了三、四、五行。
输入格式
第一行包含两个整数R和C,中间用单个空格隔开。
接下来R行,每行C个字符,描述牧场地图。字符只有“#”或“.”两种。(1 <= R, C <= 100 )
输出格式
输出一个整数,表示草丛数。
样例
输入数据 1
5 6
.#....
..#...
..#..#
....##
.....#
Copy
输出数据 1
3
dfs模板题
做题的时候如果代码是通过修改前一个代码得来的,需要好好检查一下边界,取值,输入等问题,千万不能大意!!!
#include <stdio.h>
#include <math.h>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <vector>
using namespace std;
int n,m,ans=0,vis[105][105],sum,s;
int dx[4]= {-1,0,0,1},dy[4]= {0,-1,1,0};
char a[105][105];
void dfs(int x,int y) {vis[x][y]=1;for(int i=0; i<4; i++) {int tx=x+dx[i],ty=y+dy[i];if(tx>0&&ty>0&&tx<=n&&ty<=m&&vis[tx][ty]==0&&a[tx][ty]=='#') {dfs(tx,ty);}}
}
int main() {scanf("%d%d",&n,&m);for(int i=1; i<=n; i++) {cin>>a[i];}for(int i=1; i<=n; i++) {for(int j=1; j<=m; j++) {if(!vis[i][j]&&a[i][j]=='#'){ans++;dfs(i,j);}}}cout<<ans<<endl;return 0;
}
追们算法----奶牛和草丛相关推荐
- 电子凸轮应用追剪算法详细图解(附PLC完整源代码)
谈到运动控制就离不开编码器,有关编码器测速,测距的相关内容,大家可以查看专栏的其它文章,和飞剪控制息息相关的编码器测速,请参看下面的博客,链接如下: 如何通过编码器信号计算输送线/输送带线速度(飞剪. ...
- 穷举算法——奶牛碑文(cow)
- 穷举算法--奶牛碑文(cow) 题目描述 小伟暑假期间到大草原漫游,在一块石头上发现了一些有趣的碑文.碑文似乎是一个神秘古老的语言,只包括三个大写字母 C.O 和W. 尽管小伟看不懂,但是令他高兴 ...
- 如何通过编码器信号计算输送线/输送带线速度(飞剪、追剪算法基础)
不同品牌PLC如何采集编码器的频率(速度)信号,专栏有系列文章和详细讲解,这里不再赘述,链接地址如下: PLC通过编码器反馈值计算速度的推荐做法(算法解析+ST代码)_RXXW_Dor的博客-CSDN ...
- 追梦算法----方格取数
说明 在 n 行.m 列的方格矩阵中,每个方格都包含一个数字.小明可以从任意方格出发开始移动.每次移动可以移到与当前方格有一条边相邻的方格(即向上.下.左或右方向移动 1 格,且不能移出边界).除此之 ...
- 追梦算法----修路
说明 某市调查城镇交通状况,得到现有城镇道路统计表.表中列出了每条道路直接连通的城镇.市政府 "村村通工程" 的目标是使全市任何两个城镇间都可以实现交通(但不一定有直接的道路相连, ...
- 追梦算法----P1072. 排队打水
题目描述 有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小? 输入格式 第一行包含整数 n. 第二行包含 n ...
- 追梦算法----数字找朋友
Description 给定起始数字 a (1<=a<=10^5) 还有终止数字 b (0<=b<=10^8)我们现在有三种操作方法: 给当前的数字 x 乘3 给当前的数字 ...
- 追梦算法----睡懒觉
Description 你的同桌犯困了,于是她想睡会让你待会叫她起来,但是她这个人吧有个癖好,喜欢在 回文时间 的时候起来,例如 12:21 就是一个回文时间(精确到分) 如果她被你叫起来的时候发现不 ...
- 追梦算法----马的遍历
说明 中国象棋半张棋盘如图(a)所示.马自左下角往右上角跳.今规定只许往右跳,不许往左跳,且要求马跳的方式按照(b)图顺时针深度优先递归.比如图(a)中所示为一种跳行路线.如果马要从0,0点,跳到4, ...
最新文章
- 我使用Python和Django在自己的网站上建立了一个会员专区。 这是我学到的东西。
- 扫地机器人评测 毛发_会切毛发的机器人?海尔扫地机P70抢先评测
- session的存储方式和配置
- centos7下端口映射
- nginx源码分析—数组结构ngx_array_t
- JS高级进阶之ECMAScript 常见面试题
- 《Python编程:从入门到实践 》[Eric Matthes著] 中文pdf非扫描版
- miracast投屏软件下载_手机画面如何投屏到电视?
- python爬虫数据分析系统_2小时精通python爬虫技术 带你打造Bug系统数据抽取及统计分析...
- 【自】数据库系统原理(三)——测试总结后,
- VS2012:出现devenv.sln解决方案保存对话框
- redhat 5.4 yum配置
- postfix+web页面+身份验证
- 苦逼IT男必然生女?
- Latex WinEdt7.0查找替换功能
- 配置vs2008和udk与nFringe
- 餐饮水单打印软件_除了进销存,管家婆软件能做的很多!
- Load Runner:了解软件安装后目录http://www.boobooke.com/bbs/thread-1959-1-1.html
- c语言数组回文数编写字符串,回文数C语言(示例代码)
- 微信小程序 实用的公告栏滚动效果