本蒟蒻不知道哪里错了,请各位dalao看一下吧
查看原帖
本蒟蒻不知道哪里错了,请各位dalao看一下吧
467616
osky123456楼主2021/8/17 21:28
#include<bits/stdc++.h>
using namespace std;
struct node{
	int x,y,step;
}que[1010];
int x1,yyy,x2,y2; 
bool vis[100][100];
int dx[12]={1,1,2,2,2,2,-1,-1,-2,-2,-2,-2};
int dy[12]={-2,2,-2,-1,1,2,-2,2,-1,1,-2,2};
void bfs(int x,int y){
	if(x==1&&y==1){
		cout<<1<<endl;
		return ;
	}
	int head=0,tail=1,xx,yy;
	que[1].x=x;
	que[1].y=y;
	que[1].step=0;
	vis[x][y]=true;
	while(head<tail){
		head++;
		for(int i=0;i<12;i++){
			xx=que[head].x+dx[i];
			yy=que[head].y+dy[i];
			if(xx<1||xx>x||yy<1||yy>y) continue;
			if(vis[xx][yy]==false){
				vis[xx][yy]=1;
				tail++;
				que[tail].x=xx;
				que[tail].y=yy;
				que[tail].step=que[head].step+1;
				if(xx==1&&yy==1){
				    cout<<que[tail].step<<endl;
				    return ;
			    }
			}
		}
		
	}
	return ;
}
int main(){
	cin>>x1>>yyy>>x2>>y2;
	bfs(x1,yyy);
	memset(vis,false,sizeof(vis));
	bfs(x2,y2);
    return 0;
}

谢谢大佬们

2021/8/17 21:28
加载中...