首页 > 其他 > 详细

积水问题

时间:2015-11-25 22:08:19      阅读:458      评论:0      收藏:0      [点我收藏+]
/*
** Lake Counting
** 有一个大小为N*M的园子,雨后积起了水。八连通的积水被认为是连在一起的。请求出院子里共有多少水洼?
** 算法来源:《挑战程序设计大赛》
*/
#include <stdlib.h>
#include <stdio.h>
const int MAX_N = 50;
const int MAX_M = 50;
int M, N;
char field[MAX_N][MAX_M];
void dfs(int x, int y){
field[x][y] = ‘.‘;
for(int dx=-1; dx<=1; dx++){
for(int dy=-1; dy<=1; dy++){
int nx = dx+x, ny = dy+y;
if(0<=nx && nx<N && 0<=ny && ny<M && field[nx][ny] == ‘W‘){
dfs(nx, ny);
}
}
}
}
void solve(){
int res = 0;
for(int i=0; i<N; i++){
for(int j=0; j<=M; j++){
if(field[i][i] == ‘W‘){
dfs(i, j);
res++;
}
}
}
printf("%d\n", res);
}
int main(){
scanf("%d %d", &N, &M);
for(int i=0; i<N; i++){
for(int j=0; j<=M; j++){
scanf("%c", &field[i][j]);
}
}
solve();
system("pause");
return 0;
}

积水问题

原文:http://www.cnblogs.com/Oraice/p/4995866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!