蒟蒻的求助
查看原帖
蒟蒻的求助
363128
RicardoLu楼主2021/10/16 21:14
#include <bits/stdc++.h>
using namespace std;

struct node
{
	int x,y,step;
};
int dx[10]={1,-1,0,0};
int dy[10]={0,0,-1,1};
int sx,sy,ex,ey,rx,ry,t;

int bfs(int x,int y)
{
	queue <node> q;
	node cur={x,y,0};
	q.push(cur);
	bool vis[1005][1005];
	vis[x][y]=true;
	while(q.empty()==false)
	{
		cur=q.front();
		q.pop();
		if(cur.x==ex && cur.y==ey)
		{
			return cur.step;
		}
		for(int i=0;i<4;i++)
		{
			int nx=cur.x+dx[i];
			int ny=cur.y+dy[i];
			if(nx>=1 && nx<=1000 && ny>=1 && ny<=1000 && vis[nx][ny]==0 && rx!=nx && ry!=ny)
			{
				node nxt={nx,ny,cur.step+1};
				q.push(nxt);
				vis[nx][ny]=true;
			}
		}
	}
}

signed main()
{
	cin>>t;
	while(t--)
	{
		cin>>sx>>sy>>ex>>ey>>rx>>ry;
		cout<<bfs(sx,sy)<<"\n";
	}
	return 0;
}

不知道哪错了???

2021/10/16 21:14
加载中...