WA90 ̄へ ̄
代码:
#include<bits/stdc++.h>
using namespace std;
queue<int>x,x1;
int vis[301][301],ans[301][301]={0};
int dx[8]={-2,-2,2,2,1,-1,1,-1};
int dy[8]={-1,1,-1,1,2,-2,-2,2};
int main(){
int n,start_x,start_y,fx,fy;
cin>>n>>start_x>>start_y>>fx>>fy;
x.push(start_x);
x1.push(start_y);
ans[start_x][start_y]=0;
vis[start_x][start_y]=1;
while(!x.empty()){
for(int i=0;i<8;i++){
int next_x=x.front()+dx[i];
int next_y=x1.front()+dy[i];
if((next_x>0&&next_x<=n)&&(next_y>0&&next_y<=n)&&vis[next_x][next_y]==0){
vis[next_x][next_y]=1;
ans[next_x][next_y]=ans[x.front()][x1.front()]+1;
x.push(next_x);
x1.push(next_y);
}
}
x.pop();
x1.pop();
}
cout<<ans[fx][fy];
return 0;
}