题目链接:
解题思路:基本属于深搜的水题了,每搜索一个方格就改变当前方格的值为 ‘*’,或者任何其他非'.'的值,代表该方格已经走过了,递归的时候就不用重复搜索这个方格了。
#include <stdio.h>#include <string.h>int n,m,ans;char map[30][30];int to[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};void dfs(int i,int j){ans++;map[i][j]='#';for(int k=0;k<4;k++){int x=i+to[k][0];int y=j+to[k][1];if(x<n&&y<m&&x>=0&&y>=0&&map[x][y]=='.')dfs(x,y);}return;}int main(){int i,j,fi,fj;while(~scanf("%d%d%*c",&m,&n)){if(!m&&!n)break;for(i=0;i<n;i++){for(j=0;j<m;j++){scanf("%c",&map[i][j]);if(map[i][j] == '@'){fi = i;fj = j;}}getchar();}ans=0;dfs(fi,fj);printf("%d\n",ans);}return 0;}
點擊查看更多內(nèi)容
為 TA 點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦