怎么挂的。。。
查看原帖
怎么挂的。。。
955954
shooting__star楼主2024/9/10 23:05
#include<bits/stdc++.h>
using namespace std;
int xa,ya,xb,yb;
int vis[25][25];
int dx[12]={1,-1,1,-1,2,-2,2,-2,2,-2,2,-2};
int dy[12]={2,-2,-2,2,1,-1,-1,1,2,-2,-2,2};
struct node
{
	int x;
	int y;
	int step;
};
node s1,t;
void bfs(node s)
{
	queue<node>q;
	q.push(s);
	while(!q.empty())
	{
		node tmp=q.front();
		q.pop();
		if(tmp.x==1&&tmp.y==1)
		{
			cout<<tmp.step<<endl;
			return;
		}
		for(int i=0;i<12;i++)
		{
			node a=tmp;
			a.x+=dx[i];
			a.y+=dy[i];
			a.step++;
			if(vis[a.x][a.y]==0&&a.x>0&&a.y>0&&a.x<=s.x&&a.y<=s.y)
			{
				q.push(a);
				vis[a.x][a.y]=1;
			}
		}
	}
}
int main()
{
	cin>>xa>>ya>>xb>>yb;
	s1.x=xa;
	s1.y=ya;
	t.x=xb;
	t.y=yb;
	bfs(s1);
	bfs(t);
	return 0;
}

搞不懂为什么样例第二行没输出)

2024/9/10 23:05
加载中...