这是一道很水的题
代码如下:
```cpp
#include<bits/stdc++.h>
using namespace std;
struct node{
int x,y,step;
}q[10001];
int head,tail,a[101][101],ex,ey;
int dd[12][2]={
{2,2},{-2,2},{2,-2},{-2,-2},
{2,1},{-2,-1},{-2,1},{2,-1},
{1,2},{-1,-2},{-1,2},{1,-2}};
void bfs(int ex,int ey){
head=tail=0;
q[tail].x=1;
q[tail].y=1;
q[tail++].step=0;
while(head!=tail){
if(q[head].x==ex && q[head].y==ey){
cout << q[head].step << endl;
break;
}
for(int i=0;i<12;i++){
int xx=q[head].x+dd[i][0];
int yy=q[head].y+dd[i][1];
if(xx<1 || yy<1 || xx>20 || yy>20) continue;
if(a[xx][yy]==0){
a[xx][yy]=1;
q[tail].x=xx;
q[tail].y=yy;
q[tail++].step=q[head].step+1;
}
}
head++;
}
}
int main(){
for(int i=1;i<=2;i++){
cin >> ex >> ey;
memset(a,0,sizeof(a));
bfs(ex,ey);
}
return 0;
```
by bbbbbbbbbb @ 2023-08-09 14:19:36