标签:
链接:点击打开链接
题意:问从‘@‘开始能走到的‘.‘为多少个,‘#‘代表墙
代码:
#include <iostream> using namespace std; char str[50][50]; int xx[]={1,0,-1,0}; int yy[]={0,-1,0,1}; int m,n,sum; int dfs(int x,int y){ int i,j,tempx,tempy; str[x][y]='@'; for(i=0;i<4;i++){ //dfs模板 tempx=x+xx[i]; tempy=y+yy[i]; if(tempx>=1&&tempx<=n&&tempy>=1&&tempy<=m&&str[tempx][tempy]=='.'){ sum++; dfs(tempx,tempy); } } return sum; } int main(){ int i,j,x,y; while(cin>>m>>n){ if(m==0&&n==0) break; for(i=1;i<=n;i++) for(j=1;j<=m;j++){ cin>>str[i][j]; if(str[i][j]=='@') x=i,y=j; } sum=1; cout<<dfs(x,y)<<endl; } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/stay_accept/article/details/47314211