| ||||||||||
| 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:这题bfs怎么会错?大牛们帮看看啊。谢了先!In Reply To:这题bfs怎么会错?大牛们帮看看啊。谢了先! Posted by:shenfangyi at 2006-07-26 02:20:40 > #include<stdio.h>
> #include<iostream.h>
> char a[20][21];
> int b[400][2],c[20][20];
> main()
> {
> int w,h;
> cin>>w>>h;
> while(w||h)
> {
> getchar();
> int i=-1;
> for(int x=0;x<h;x++)
> {
> gets(a[x]);
> for(int j=0;j<w;j++)c[x][j]=0;
> if(i)
> {
> for(int j=0;j<w;j++)if(a[x][j]=='@')
> {
> i++,b[0][0]=x,b[0][1]=j;
> }
> }
> }
> int j=1;
> while(i<j)
> {
> if((b[i][0]>0)&&(a[b[i][0]-1][b[i][1]]=='.')&&(!c[b[i][0]-1][b[i][1]]))b[j][0]=b[i][0]-1,b[j][1]=b[i][1],c[b[j][0]][b[j][1]]=1,j++;
> if((b[i][1]>0)&&(a[b[i][0]][b[i][1]-1]=='.')&&(!c[b[i][0]][b[i][1]-1]))b[j][0]=b[i][0],b[j][1]=b[i][1]-1,c[b[j][0]][b[j][1]]=1,j++;
> if((b[i][0]<h-1)&&(a[b[i][0]+1][b[i][1]]=='.')&&(!c[b[i][0]+1][b[i][1]]))b[j][0]=b[i][0]+1,b[j][1]=b[i][1],c[b[j][0]][b[j][1]]=1,j++;
> if((b[i][0]<w-1)&&(a[b[i][0]][b[i][1]+1]=='.')&&(!c[b[i][0]][b[i][1]+1]))b[j][0]=b[i][0],b[j][1]=b[i][1]+1,c[b[j][0]][b[j][1]]=1,j++;
> i++;
> }
> cout<<j<<endl;
> cin>>w>>h;
> }
> }
//确实 代码太难看了 !!!注意可读性!!!
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator