1
已解决
黄依成
中级天翼
中级天翼
众所周知,6467这题很水doge
还是道8分题
不就把马和田的方向数组合起来嘛!(小声bb
于是就有了下面这段WA80代码
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
struct node{
int x,y;
};
queue<node> q;
int x1,y1,x2,y2,f[25][25];
int dir[15][2]={{0},{-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1},{-2,-2},{-2,2},{2,-2},{2,2}};
void bfs(){
while(!q.empty()){
node h=q.front();
q.pop();
for(int i=1;i<=12;i++){
int dx=h.x+dir[i][0],dy=h.y+dir[i][1];
if(dx>=1&&dy>=1&&dx<=20&&dy<=20&&f[dx][dy]==-1){
f[dx][dy]=f[h.x][h.y]+1;
q.push((node){dx,dy});
}
}
}
}
int main(){
cin>>x1>>y1>>x2>>y2;
memset(f,-1,sizeof(f));
f[1][1]=0;
q.push((node){1,1});
bfs();
cout<<f[x1][y1]<<endl<<f[x2][y2];
return 0;
}
求大佬hack
黄依成在2021-04-26 19:15:24追加了内容
黄依成在2021-04-26 19:25:03追加了内容
AC啦!经验真多!