DFS 水题Lake Counting
来源:互联网 发布:广州软件开发工资 编辑:程序博客网 时间:2024/06/05 20:17
由于最近的降雨,水已经在农民约翰的田野中的各个地方聚集,这是由N×M(1 <= N <= 100; 1 <= M <= 100)广场的矩形表示的。 每个广场都有水('W')或干地(''')。 农民约翰想知道在他的领域已经形成了多少个池塘。 一个池塘是连接在一起的正方形的水,在那里一个正方形被认为是邻近所有八个邻居
给出了约翰农场的图表,确定他有多少池塘。
输入
*行1:两个空格分隔的整数:N和M <br> <br> *行2..N + 1:每行代表一行农夫约翰字段的M个字符。 每个角色都是“W”或“。”。 角色之间没有空格。
产量
第1行:农民约翰的田野中的池塘数量。
样品输入
样品输出
给出了约翰农场的图表,确定他有多少池塘。
输入
*行1:两个空格分隔的整数:N和M <br> <br> *行2..N + 1:每行代表一行农夫约翰字段的M个字符。 每个角色都是“W”或“。”。 角色之间没有空格。
产量
第1行:农民约翰的田野中的池塘数量。
样品输入
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
刚开始不懂题目的意思,上网百度还是看不懂,然后问了同学,发现很水,就是找连在一起的块数,样例中即有3个(联通规则为9宫格的中心可以到其他的8个位置)
DFS直接解决,注意9宫格中心和其他8个格子在坐标的关系
void DFS(int row,int col){ if(1>row&&row>N&&col<1&&col>M) return ; s[row][col]='.'; for(int i=0;i<8;i++) { int x=row+dir[i].x; int y=col+dir[i].y; if(s[x][y]=='W'){ DFS(x,y); } }}int main(){ cin>>N>>M; for(int i=1;i<=N;i++) for(int j=1;j<=M;j++) cin>>s[i][j]; int cnt=0; for(int i=1;i<=N;i++) for(int j=1;j<=M;j++){ if(s[i][j]=='W') { DFS(i,j); cnt++; } } cout<<cnt<<endl; return 0;}
阅读全文
0 0
- Lake Counting DFS水题
- DFS 水题Lake Counting
- POJ2386:Lake Counting(DFS)
- poj2386 Lake Counting DFS
- POJ - Lake Counting(DFS)
- Lake Counting(DFS)
- DFS------Lake Counting
- POJ2386 Lake Counting(DFS)
- POJ2386 Lake Counting 【DFS】
- D - Lake Counting-dfs
- Lake Counting-DFS
- hdu dfs Lake Counting
- 2386 Lake Counting【dfs】
- 基础DFS-Lake Counting
- Lake Counting(dfs)
- lake counting(dfs)
- poj Lake Counting (dfs)
- POJ2386 Lake Counting (dfs)
- numpy基础——numpy.argsort
- 安卓常见控件
- UGUI 类炉石传说箭头效果实现
- Java中Object类的equals()和hashCode()方法深入解析
- 理解CSS雪碧图
- DFS 水题Lake Counting
- 微信公众号平台网页授权接口中获取到的授权code传递给(即一个微信公众号网页授权给)任何其他多个回调域名下的url,解决了只能设置一个网页授权回调域名的问题,解决了redirect_uri参数错误的问
- python中的intern机制
- numpy基础——numpy.tile
- Merge Sort Algorithm
- 1121. Damn Single (25)
- 《自己手动写一个编译器、连接器》一(4)
- 加入收款二维码、郑重声明、去掉强制参数scope、强制参数优先级高于筛选参数
- 2017年7月20日01:23:23