pku1979 简单搜索

http://acm.pku.edu.cn/JudgeOnline/problem?id=1979

题意:从@开始,‘.’能走,‘#’不能走,求最多能走的步数。

从四个方向搜下就行了~

#include<iostream> using namespace std; char map[22][22]; int H,W; int seach(int x, int y) { if(x<0 || x>=H || y<0 || y>=W) return 0; if(map[x][y] == '#') return 0; else { map[x][y] = '#'; return 1 + seach(x+1,y) + seach(x,y+1) + seach(x-1,y) + seach(x,y-1); } } int main() { int x,y,i,j; while(scanf("%d%d",&W,&H) && H && W) { for(i=0; i<H; i++) scanf("%s",map[i]); //cin>>map[i]; for(i=0; i<H; i++) { for(j=0; j<W; j++) { //scanf("%c",&map[i][j]); if(map[i][j] == '@') { printf("%d/n",seach(i,j)); } } } } return 0; } 

你可能感兴趣的:(c)