hdu 1312 DFS
dfs水过、、
没注意结果为1的情况,WA了几次...⊙﹏⊙b汗
#include<iostream> #include<cstdio> using namespace std; int sum,m,n; char map[22][22]; int dir[4][2]={1,0,0,1,-1,0,0,-1}; void dfs(int x,int y){ int i,ex,ey; for(i=0;i<4;i++){ ex=x+dir[i][0]; ey=y+dir[i][1]; if(ex>=0&&ex<n&&ey>=0&&ey<m&&map[ex][ey]!='#'){ if(map[ex][ey]!='@') sum++; map[ex][ey]='#'; dfs(ex,ey); } } return ; } int main(){ int x,y; while(cin>>m>>n,n||m){ for(int i=0;i<n;i++){ scanf("%s",map[i]); for(int j=0;j<m;j++) if(map[i][j]=='@'){ x=i,y=j; } } sum=1; dfs(x,y); cout<<sum<<endl; } return 0; }
作者:pngcui
博客园:http://www.cnblogs.com/pngcui/
github:https://github.com/pngcui
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。