全WA
查看原帖
全WA
1004178
FanofFuSu楼主2024/4/19 21:00
#include<bits/stdc++.h>
//#include<windows.h>
using namespace std;
struct a_map{
	queue<int> x,y;
	void arr_throw(){x.pop();y.pop();}
	void pick(int in_x,int in_y)
	{x.push(in_x);y.push(in_y);}
}move_map;//定义了一个地图结构体 
char Chongshan_map[1002][1002];//存储地图数据 
int n,ans=1e9,now_steps_moved;
int x_1,x_2,y_1,y_2;
void BFS(){
	move_map.pick(x_1,y_1);
	int dx[5]={0,1,-1,0,0},
		dy[5]={0,0,0,1,-1};
	do{
		now_steps_moved++;
		move_map.arr_throw();
		for(int i=1;i<=5;i++){
			if(move_map.x.front()+dx[i]==x_2&&
			   move_map.y.front()+dy[i]==y_2){
				//符合条件
				ans=min(ans,now_steps_moved/3);
				return;
			}
			else move_map.pick
			(move_map.x.front()+dx[i],
			move_map.y.front()+dy[i]);
		}
		//cout<<ans<<endl;
		//Sleep(200);
	}while(!move_map.x.empty());
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n;j++)
			scanf("%c",&Chongshan_map[i][j]);
	}cin>>x_1>>y_1>>x_2>>y_2;
	BFS();
	cout<<ans;
	return 0;
}
2024/4/19 21:00
加载中...