求调!!!
查看原帖
求调!!!
1229219
szlyf2011楼主2024/8/28 11:24
#include<bits/stdc++.h>
using namespace std;
int fx[12][2] = {{1,2},{2,1},{-1,2},{2,-1},{1,-2},{-2,1},{-1,-2},{-2,-1}, /**/ {2,2},{2,-2},{-2,2},{-2,-2}};
struct node{
	int x,y,step;
};
queue<node> q;
void bfs(int x,int y){
	int vis[50][50];
	
	q.push(node{x,y,0});
	vis[x][y] = 1;
	
	if(x==1&&y==1){
		cout << 0 << endl;
		return ;
	}
	while(!q.empty()){
		node fnt = q.front();
		q.pop();
		
		if(fnt.x == 1 && fnt.y == 1){
			cout << fnt.step << endl;
			return ;
		}
		
		for(int i = 0;i < 12;i++){
			int nx = fnt.x + fx[i][0];
			int ny = fnt.y + fx[i][1];
			if(nx>=1&&nx<=30&&ny>=1&&ny<=30&&vis[nx][ny]==0){
				vis[nx][ny] = 1;
				q.push(node{nx,ny,fnt.step+1});
			}
		}
	}
}
int main(){
	int x1,y1,x2,y2;
	cin >> x1 >> y1 >> x2 >> y2;
	
	bfs(x1,y1);bfs(x2,y2);
	
	return 0;
}
2024/8/28 11:24
加载中...