POJ-2386-Lake Counting
2014-10-15 20:47
246 查看
题目链接
http://poj.org/problem?id=2386
题意有一个N*M的园子雨后起了积水。八连通的积水被认为是连在一起的。请求出园子总共有多少水洼?
Sample Input
Sample Output
#include<stdio.h>
int n,m;
char map[110][110];
void dfs(int x,int y)
{
map[x][y]='.';
for(int dx=-1; dx<=1; dx++)
{
for(int dy=-1; dy<=1; dy++)
{
int nx=x+dx;
int ny=y+dy;
if(nx>=0&&nx<n&&ny>=0&&ny<m&&map[nx][ny]=='W')
dfs(nx,ny);
}
}
}
int main(void)
{
int i,j,k;
while(scanf("%d%d",&n,&m)==2)
{
getchar();
k=0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
scanf("%c",&map[i][j]);
}
getchar();
}
for(i=0; i<n; i++)
for(j=0; j<m; j++)
if(map[i][j]=='W')
{
dfs(i,j);
k++;
}
printf("%d\n",k);
}
return 0;
}
http://poj.org/problem?id=2386
题意有一个N*M的园子雨后起了积水。八连通的积水被认为是连在一起的。请求出园子总共有多少水洼?
Sample Input
10 12 W........WW. .WWW.....WWW ....WW...WW. .........WW. .........W.. ..W......W.. .W.W.....WW. W.W.W.....W. .W.W......W. ..W.......W.
Sample Output
3 从任意W开始,不停地把邻接的部分用'.' 代替,记录次数 代码
#include<stdio.h>
int n,m;
char map[110][110];
void dfs(int x,int y)
{
map[x][y]='.';
for(int dx=-1; dx<=1; dx++)
{
for(int dy=-1; dy<=1; dy++)
{
int nx=x+dx;
int ny=y+dy;
if(nx>=0&&nx<n&&ny>=0&&ny<m&&map[nx][ny]=='W')
dfs(nx,ny);
}
}
}
int main(void)
{
int i,j,k;
while(scanf("%d%d",&n,&m)==2)
{
getchar();
k=0;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
scanf("%c",&map[i][j]);
}
getchar();
}
for(i=0; i<n; i++)
for(j=0; j<m; j++)
if(map[i][j]=='W')
{
dfs(i,j);
k++;
}
printf("%d\n",k);
}
return 0;
}
相关文章推荐
- poj 2386 Lake Counting
- poj 2386 Lake Counting-----DFS
- POJ 之2386 Lake Counting
- POJ-2386--Lake Counting---DFS(深搜)
- POJ 2386 Lake Counting
- poj 2386 Lake counting
- POJ 2386 Lake Counting(深搜)
- poj 2386 Lake Counting
- poj 2386 Lake Counting(DFS 杂这么多这种类型的水题啊。。。。)
- poj 2386 Lake Counting
- poj 2386 Lake Counting
- POJ 2386 Lake Counting (DFS)
- POJ 2386 Lake Counting
- poj 2386 Lake Counting 【dfs(模板)】
- Poj 2386 Lake Counting
- poj 2386 Lake Counting (BFS~)
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting
- POJ 2386 Lake Counting (水题,DFS)
- POJ 2386 Lake Counting