您的位置:首页 > 其它

POJ 1979 简单dfs||bfs

2013-03-27 21:11 513 查看
//题意:求从@出发的连续的'.'的个数。

分析:直接用dfs。

感悟:我很水啊,这题敲了半天。加油啊,亲。

View Code

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define maxn 110
int n,m;
char str[maxn][maxn];
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int sum;
void dfs(int s,int e){
for(int i=0;i<4;i++){
int xx=s+dir[i][0];
int yy=e+dir[i][1];
printf("xx=%d    yy=%d\n",xx,yy);
if(xx<0||xx>=m||yy<0||yy>=n){
continue;
}
if(str[xx][yy]=='.'){
sum++;
str[xx][yy]='#';
dfs(xx,yy);
}
}
}

int main(){
while(scanf("%d%d",&n,&m)!=EOF){
int si,sj;
if(n==0&&m==0)  break;
for(int i=0;i<m;i++){
scanf("%s",str[i]);
for(int j=0;j<n;j++){
//scanf
if(str[i][j]=='@'){
si=i;
sj=j;
}
}
//dfs(si,sj);
}
sum=1;
str[si][sj]='#';
dfs(si,sj);
printf("%d\n",sum);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: