链接
[http://poj.org/problem?id=1979]
题意
问能走多少格子
分析
简单基础DFS
代码
#include#include #include #include using namespace std;const int N=22;char mp[N][N];int d[4][2]={ {-1,0},{1,0},{0,-1},{0,1}};int n,m; int ans;void dfs(int x,int y){ for(int i=0;i<4;i++){ int x2=x+d[i][0],y2=y+d[i][1]; if(x2<0||x2>=m||y2<0||y2>=n) continue; if(mp[x2][y2]=='.'){ ans++; mp[x2][y2]='#'; dfs(x2,y2); } }}int main(){ int sx,sy; //freopen("in.txt","r",stdin); while(cin>>n>>m&&(n+m)){ for(int i=0;i >mp[i][j]; if(mp[i][j]=='@') sx=i,sy=j; } ans=1; mp[sx][sy]='#'; dfs(sx,sy); cout< <