| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:顺便把dfs代码也附上In Reply To:第一道bfs,付代码 Posted by:821631813 at 2014-07-29 16:10:56 #include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <queue>
#include <algorithm>
#define maxn 30
using namespace std;
char map[maxn][maxn];
int dx[]={0,1,-1,0};
int dy[]={1,0,0,-1};
int use[maxn][maxn];
int number;
int n,m,sx,sy;
void dfs(int x,int y){
// use[x][y]=1;
for(int i=0;i<4;i++){
int xx=x+dx[i];
int yy=y+dy[i];
if(map[xx][yy]=='#'||xx<0||xx>=n||yy<0||yy>=m||use[xx][yy]==1)
continue;
use[xx][yy]=1;
number++;
dfs(xx,yy);
}
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r" ,stdin);
#endif // ONLINE_JUDGE
while(cin>>m>>n){
if(n==0&&m==0)
break;
memset(use,0,sizeof(use));
number=1;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>map[i][j];
if(map[i][j]=='@'){
sx=i;
sy=j;
}
}
}
use[sx][sy]=1;
dfs(sx,sy);
cout<<number<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator