首页 > 代码库 > 经典DFS问题 oilland 连通块
经典DFS问题 oilland 连通块
#include "iostream"#include "cstdio"using namespace std;int dir[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,-1},{-1,1},{1,1},{-1,-1}};int count,r,c;char map[100][100];void dfs(int x,int y)//深搜函数,参数为坐标(定位){ if(x<0||y<0||x>=r||y>=c) return ; else if(map[x][y]==‘@‘) { map[x][y]=‘.‘; //如何标记已访问! for(int i=0;i<8;i++) //周围深搜 dfs(x+dir[i][0],y+dir[i][1]); } else return;}int main(){ while(~scanf("%d%d",&r,&c)&&r&&c) { int i,j; count=0; for(i=0;i<r;i++) scanf("%s",map[i]);//输入地图 for(i=0;i<r;i++) for(j=0;j<c;j++) { if(map[i][j]==‘@‘) { count++; dfs(i,j); } } printf("%d\n",count); } return 0;}
经典DFS问题 oilland 连通块
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。