help,60分
查看原帖
help,60分
212423
FrozenDream楼主2022/2/12 11:52

rt

#include <bits/stdc++.h>
using namespace std;
int dx[12]={2,-2,2,-2,1,1,-1,-1,2,2,-2,-2},dy[12]={2,2,-2,-2,2,-2,2,-2,1,-1,1,-1},a[101][101],xx[101],yy[101],fu[101][101];
int x1,y3,x2,y2;
void bfs(int x,int y){
	int head=0,tail=1;
    xx[1]=x;
    yy[1]=y;
    a[x][y]=1;
    fu[x][y]=0;
    do{
        head++;
        for(int i=0;i<12;i++){
            int xxx=xx[head]+dx[i],yyy=yy[head]+dy[i];
            if(xxx<=20&&xxx>=1&&yyy<=20&&yyy>=1&&!a[xxx][yyy]){
                tail++;
                xx[tail]=xxx;
                yy[tail]=yyy;
                a[xxx][yyy]=1;
                fu[xxx][yyy]=fu[xx[head]][yy[head]]+1;
                if(xxx==1&&yyy==1){
                    cout<<fu[1][1]<<endl;
                    return;
                }
            }
        }
    }while(head<tail);
}
int main(){
    cin>>x1>>y3>>x2>>y2;
    bfs(x1,y3);
    memset(a,0,sizeof(a));
    memset(fu,0,sizeof(fu));
    memset(xx,0,sizeof(xx));
    memset(yy,0,sizeof(yy));
    bfs(x2,y2);
}
2022/2/12 11:52
加载中...