tj
2025-08-08 11:19:48
发布于:浙江
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int dx[]={1,1,-1,-1,2,2,-2,-2};
int dy[]={2,-2,2,-2,1,-1,-1,1};
bool vis[309][309];
struct node{
int x,y,step;
};
int main(){
int l;
cin>>l;
while(l--){
memset(vis,false,sizeof vis);
int n,sx,sy,x1,y1;
cin>>n>>sx>>sy>>x1>>y1;
vis[sx][sy]=true;
queue<node>q;
q.push({sx,sy,0});
while(q.size()){
node u=q.front();
q.pop();
for(int i=0;i<8;i++){
int nx=u.x+dx[i];
int ny=u.y+dy[i];
if(u.x==x1&&u.y==y1){
cout<<u.step<<endl;
break;
}
if(nx>=0&&nx<=n&&ny>=0&&ny<=n&&!vis[nx][ny]){
q.push({nx,ny,u.step+1});
vis[nx][ny]=true;
}
}
}
}
}
这里空空如也
有帮助,赞一个