编译错了,dev可以,求调
查看原帖
编译错了,dev可以,求调
1045862
wleclare2011楼主2024/8/14 09:42
#include<bits/stdc++.h>
using namespace std;
int dx[30]={0,-2,-2,-1,1,2,2,2,2,1,-1,-2,-2};
int dy[30]={0,1,2,2,2,2,1,-1,-2,-2,-2,-2,-1};//12
int x1,y1,x2,y2;
int vis1[30][30],vis2[30][30];
struct node{
	int x,y,step;
};
int main(){
	cin>>x1>>y1>>x2>>y2;
	queue<node>q1;
	q1.push((node){x1,y1,0});
	vis1[x1][y1]=1;
	while(!q1.empty()){
		node p=q1.front();
		q1.pop();
		if(p.x==1&&p.y==1){
			cout<<p.step<<endl;
			break;
		}
		for(int i=1;i<=12;i++){
			int xx=dx[i]+p.x,yy=dy[i]+p.y;
			if(xx>=1&&yy>=1&&!vis1[xx][yy]){
				vis1[xx][yy]=1;
				q1.push((node){xx,yy,p.step+1});
			}
		}
	}
	queue<node>q2;
	q2.push((node){x2,y2,0});
	vis2[x2][y2]=1;
	while(!q2.empty()){
		node p=q2.front();
		q2.pop();
		if(p.x==1&&p.y==1){
			cout<<p.step<<endl;
			break;
		}
		for(int i=1;i<=12;i++){
			int xx=dx[i]+p.x,yy=dy[i]+p.y;
			if(xx>=1&&yy>=1&&!vis2[xx][yy]){
				vis2[xx][yy]=1;
				q2.push((node){xx,yy,p.step+1});
			}
		}
    }
	return 0;
}
2024/8/14 09:42
加载中...