POJ ——2386 Lake Counting(DFS)
来源:互联网 发布:淘汰算法有哪些 编辑:程序博客网 时间:2024/06/06 03:43
Description
Given a diagram of Farmer John's field, determine how many ponds he has.
Input
* Lines 2..N+1: M characters per line representing one row of Farmer John's field. Each character is either 'W' or '.'. The characters do not have spaces between them.
Output
Sample Input
10 12W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.....WW.W.W.W.....W..W.W......W...W.......W.
Sample Output
3
Hint
There are three ponds: one in the upper left, one in the lower left,and one along the right side.
简单DFS
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<math.h>
#include<string.h>
#define M(i,n,m) for(int i = n;i < m;i ++)
#define N(n,m) memset(n,m,sizeof(n));
const int MAX = 111;
using namespace std;
int s[8][2] = {{0,1},{1,0},{0,-1},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};
char a[MAX][MAX];
int b[MAX][MAX],n,m;
void dfs(int x,int y)
{
b[x][y] = 1;
M(i,0,8)
{
int t1 = x + s[i][0];
int t2 = y + s[i][1];
if(t1 >= 0 && t1 < n && t2 >= 0 && t2 < m && a[t1][t2] == 'W' && !b[t1][t2])
{
b[t1][t2] = 1;
dfs(t1,t2);
}
}
return;
}
int main()
{
int sum;
while(~scanf("%d%d",&n,&m))
{
if(!n && !m)
break;
N(b,0)
sum = 0;
M(i,0,n)
scanf("%s",a[i]);
M(i,0,n)
M(j,0,m)
if(a[i][j] == 'W' && !b[i][j])
{
sum ++;
dfs(i,j);
}
printf("%d\n",sum);
}
}
- POJ ——2386 Lake Counting(DFS)
- poj 2386Lake Counting(DFS, BFS)
- Lake Counting (POJ No.2386) DFS
- POJ 2386 Lake Counting(DFS)
- POJ 2386 Lake Counting (DFS)
- poj 2386Lake Counting(dfs)
- POJ 2386 Lake Counting(DFS)
- POJ 2386 Lake Counting(dfs)
- POJ 2386 Lake Counting(dfs)
- POJ 2386 Lake Counting(简单dfs)
- POJ 2386 Lake Counting (DFS)
- poj 2386 Lake Counting(dfs)
- POJ 2386 Lake Counting(经典dfs)
- POJ-2386--Lake Counting---DFS(深搜)
- POJ—2386—Lake Counting—【DFS】
- POJ 2386 Lake Counting (DFS)
- poj 2386 Lake Counting (DFS~)
- POJ 2386 Lake Counting (dfs)
- java记——函数调用,三角形问题
- 常见排序算法小结
- codeforces #307 E. GukiZ and GukiZiana (分块)
- Foundation 心得、笔记
- ArcGIS教程:按掩膜提取 (空间分析)
- POJ ——2386 Lake Counting(DFS)
- 如何让app多个页面只用一个地图实例
- Python+MySQL获取PhishTank的钓鱼网站列表作业笔记
- 挑战“不可能”
- 使用Windows Mobile Device Center进行手机的同步
- Android项目总结之社会化分享
- 硬件架构图,比较实用,收走
- 取消vs2010选中打开的文件自动展开解决方案文件夹
- asp输出变量