HELP(BFS)

法老王  •  1年前


include<bits/stdc++.h>

using namespace std; int dx[]={0,0,-1,1}; int dy[]={1,-1,0,0}; struct point{

int x,y;

}; int a[1000][1000],ans; queue q; int m,n,startx,starty,endx,endy; void bfs(int x,int y){

point startxy,nowxy,go;
startxy.x=x;
startxy.y=y;
q.push(startxy);
a[x][y]=1;
while(!q.empty()){
	nowxy.x=q.front().x;
	nowxy.y=q.front().y;
	q.pop();
	//cout<<"1";
	for(int t=0;t<4;t++){
		int xx=dx[t]+nowxy.x;
		int yy=dy[t]+nowxy.y;
		go={xx,yy};
		if(xx>0&&yy>0&&xx<=m&&yy<=m&&a[xx][yy]!=1){
			a[xx][yy]=1;
			q.push(go);
			ans++;
		    if(xx==endx&&yy==endy){
		    	cout<<ans;
		    	return;
		    }
		}
	}
}

} int main(){

cin>>m;
for(int i=1;i<=m;i++){
	for(int j=1;j<=m;j++){
	    scanf("%1d",&a[i][j]);
	}
}
cin>>startx>>starty>>endx>>endy;
bfs(startx,starty);
return 0;

}//运行出错了;


评论:

这个是能编译的吗?


陈路垚  •  1年前

我在DEV-C++编译器里是过了


法老王  •  1年前