HDU-1241Oil Deposits

来源:互联网 发布:姓名抽奖软件 编辑:程序博客网 时间:2024/05/17 04:24

DFS入门


#include<iostream>#include<fstream>#define N 105char map[N][N];int isvisted[N][N];int m,n;int num;int dir[][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};int DFS(int x,int y){if(x<0||x>=m||y<0||y>=n){return 0;}if(map[x][y]=='*'){return 0;}if(isvisted[x][y]==1){return 0;}isvisted[x][y]=1;int t_x,t_y;for(int i=0;i!=9;i++){t_x=x+dir[i][0];t_y=y+dir[i][1];DFS(t_x,t_y);}return 1;}int main(){//std::fstream fin("1.txt");while (std::cin>>m>>n&&m){for(int i=0;i!=m;i++){for(int j=0;j!=n;j++){std::cin>>map[i][j];}}    for(int i=0;i!=m;i++){for(int j=0;j!=n;j++){if(map[i][j]=='@'&&isvisted[i][j]==0){DFS(i,j);num++;}}}std::cout<<num<<std::endl;num=0;memset(map,0,sizeof(map));memset(isvisted,0,sizeof(isvisted));}}


原创粉丝点击