您的位置:首页 > 其它

简单dfs模板

2017-03-30 15:17 183 查看
Poj 2386 Lake Counting 点击打开链接
#include<stdio.h>#define maxn 101char map[maxn][maxn];//构造地图的数组int m,n;void dfs(int x,int y){map[x][y]='.'; //将搜索过的地方变成'.’for(int i=-1;i<=1;i++)for(int j=-1;j<=1;j++)//上下左右四方向dfs{int nx=x+i;int ny=y+j;if(nx>=0&&nx<n&&ny>=0&&ny<m&&map[nx][ny]=='W')//进行dfs的四个条件dfs(nx,ny);//递归调用}return;}int main(){int i,j,sum;scanf("%d%d",&n,&m);//输入长宽for(i=0;i<n;i++){getchar();for(j=0;j<m;j++){scanf("%c",&map[i][j]);//构造地图}}sum=0;for(i=0;i<n;i++){for(j=0;j<m;j++)//从(0,0)位置开始遍历{if(map[i][j]=='W')//当碰到水坑时 进行dfs搜索{dfs(i,j);sum++;}}}printf("%d\n",sum);}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: