Light oj 1012--dfs(首次觉得自己会了)

来源:互联网 发布:怎么连接kad电骡网络 编辑:程序博客网 时间:2024/05/16 19:49


题意:就是找一个给定点能走的步数(上下左右)

分析:直接DFS深搜。第一次这么顺的写出了DFS,好高兴,死磕DFS之后果然有进步

代码:

#include<iostream>#include<cstring>using namespace std;int t,m,n;int d[4][2]={{1,0},{-1,0},{0,1},{0,-1}};char a[30][30];int sx,sy;int cnt;void dfs(int x,int y){if(a[x][y]=='#') return;cnt++;a[x][y]='#';for(int i=0;i<4;i++){int dx=x+d[i][0];int dy=y+d[i][1];if(dx>=0&&dx<n&&dy>=0&&dy<m){dfs(dx,dy);}}}int main(){cin>>t;for(int i=1;i<=t;i++){cnt=0;cin>>m>>n;for(int j=0;j<n;j++)for(int k=0;k<m;k++){cin>>a[j][k];if(a[j][k]=='@') sx=j,sy=k;  }dfs(sx,sy);cout<<"Case "<<i<<": "<<cnt<<endl;}}

0 0