搜索dfs-hdu Oil Deposits

来源:互联网 发布:linux 查看db2 序列号 编辑:程序博客网 时间:2024/05/20 10:51
#include <bits/stdc++.h>using namespace std;int m,n;char str[105][105];void dfs(int x,int y)//递归,当前坐标位置 {if(x<0||x>=m||y<0||y>=n)//超过搜索的范围(越界),直接返回 return ; if(str[x][y]=='@')//如果该点满足条件,就搜索8个方向 {str[x][y]='*';//首先赋值为'*',表示搜索过 dfs(x-1,y);dfs(x-1,y+1);dfs(x,y+1);dfs(x+1,y+1);dfs(x+1,y);dfs(x+1,y-1);dfs(x,y-1);dfs(x-1,y-1);}}int main(){while(scanf("%d %d",&m,&n)&&(m+n)){int sum=0;for(int i=0;i<m;i++)for(int j=0;j<n;j++)cin>>str[i][j];for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(str[i][j]=='@'){dfs(i,j);sum++;}}}cout<<sum<<endl;}return 0;} 

0 0
原创粉丝点击