求助!为什么编译不对?
查看原帖
求助!为什么编译不对?
1436389
shr1228楼主2025/1/25 19:52

代码如下:

#include<bits/stdc++.h>
using namespace std;
int n,x1,y1,x2,y2;
int vis[1005][1005];  
struct Tnode{ 
	int x,y;
}qu[1005*1005];
int dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
void bfs(int x0, int y0) {    
	int head=0,tail=0;
	qu[0].x = x0;
	qu[0].y = y0;
	tail++;
	vis[x0][y0]=0;
	int ans=0;
	while (head<tail){
	   int x = qu[head].x;
	   int y = qu[head].y;
	   head++;              
       int step = vis[x][y]; 
	   for (int d=0; d<4; d++)	{
	   	  int nx=x+dx[d]; 
	   	  int ny=y+dy[d];
	   	  if (nx>=1 && nx<=n && ny>=1 && ny<=n && vis[nx][ny]==-1){ //可以进入 
	   	  	 vis[nx][ny]=step+1; 
			 qu[tail].x = nx;
			 qu[tail++].y = ny;
	   	  }
	   }
	} 
	return;
}
int main(){
    memset(vis,0xff,sizeof(vis));
    cin>>n;
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=n;j++){
    		char c;
    		cin>>c;
    		int x=c-'0';
    		if(c==1) vis[i][j]=-2;
    		else vis[i][j]=-1;
		}
	}
	cin>>x1>>y1>>x2>>y2;
	bfs(x1,y1);
    cout<<vis[x2][y2];
	return 0;
}

2025/1/25 19:52
加载中...