编译错误
查看原帖
编译错误
575655
Chtholly_is_cute楼主2024/12/21 15:41

code:

#include<bits/stdc++.h>
using namespace std;
const int N=35;
int a[N][N],vis[N][N];
int dx[9],dy[9];
int m,n,m1,m2;
struct move{int x,y,step;};
queue<move>q;
int main(){
	cin>>m>>n>>m1>>m2;
	int sx,sy,ex,ey;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++){
			cin>>a[i][j];
			if(a[i][j]==3)sx=i,sy=j;
			if(a[i][j]==4)ex=i,ey=j;
		}
	}
	dx[1]=a,dy[1]=b;
    	dx[2]=a,dy[2]=-b;
    	dx[3]=-a,dy[3]=b;
    	dx[4]=-a,dy[4]=-b;
    	dx[5]=b,dy[5]=a;
    	dx[6]=b,dy[6]=-a;
    	dx[7]=-b,dy[7]=a;
    	dx[8]=-b,dy[8]=-a;
	move x={sx,sy,0};
	vis[sx][sy]=1;
	q.push(x);
	while(!q.empty()){
		x=q.front();
		if(x.x==ex&&x.y==ey){
			cout<<x.step;
			return 0;
		}
		q.pop();
		for(int i=1;i<=8;i++){
			int xx=x.x+dx[i],yy=x.y+dy[i];
			if(xx<1||xx>m||yy<1||yy>n)continue;
			if(vis[xx][yy]==1||a[xx][yy]==0||a[xx][yy]==2)continue;
			x={xx,yy,x.step+1};
			q.push(x);
			vis[xx][yy]=1;
		}
	}
}
2024/12/21 15:41
加载中...