蒟蒻RE求助
查看原帖
蒟蒻RE求助
95170
Tune_楼主2022/4/12 18:52

不知道为什么RE了……

本地运行能过样例

是我的问题还是UVA炸了……?

#include<bits/stdc++.h>
using namespace std;
string a,b;
int dx[10]={0,1,1,-1,-1,2,2,-2,-2};
int dy[10]={0,2,-2,2,-2,1,-1,1,-1};
struct data
{
	int x,y,s;
}k;
int bfs(int x,int y,int xx,int yy)
{
	k={x,y,0};
	bool bj[10][10];
	queue<data> q;
	q.push(k);
	while(!q.empty())
	{
		k=q.front();
		q.pop();
		for(int i=1;i<=8;i++)
		{
			if(k.x+dx[i]<=8&&k.x+dx[i]>0&&k.y+dy[i]>0&&k.y+dy[i]<=8&&!bj[k.x+dx[i]][k.y+dy[i]])
			{
				if(k.x+dx[i]==xx&&k.y+dy[i]==yy)
					return k.s+1;
				q.push({k.x+dx[i],k.y+dy[i],k.s+1});
				bj[k.x+dx[i]][k.y+dy[i]]=1;
			}
		}
	}
}
int main()
{
	while(cin>>a>>b)
	{
		int x,y,xx,yy;
		x=a[0]-'a'+1;
		y=a[1]-'0';
		xx=b[0]-'a'+1;
		yy=b[1]-'0';
		if(x==xx&&y==yy)
		{
			cout<<"To get from "<<a<<" to "<<b<<" takes 0 knight moves."<<endl;
			continue;
		}
		cout<<"To get from "<<a<<" to "<<b<<" takes "<<bfs(x,y,xx,yy)<<" knight moves."<<endl;
	}
	return 0;
}
2022/4/12 18:52
加载中...