为什么x1=10,y1=17时没有输出,一个点wa
查看原帖
为什么x1=10,y1=17时没有输出,一个点wa
369898
a12345a楼主2020/8/22 21:11

求大佬帮助

#include<bits/stdc++.h>
using namespace std;
int a[21][21];
int q[50000][3];
int dx[12]={-2,-1,1,2,2,1,-1,-2,-2,2,2,-2};
int dy[12]={1,2,2,1,-1,-2,-2,-1,2,2,-2,-2};
void bfs(int x,int y)
{	
	memset(a,0,sizeof(a));
	memset(q,0,sizeof(q));
	a[x][y]=1;
	int front=0,rear=0;
	q[rear][0]=x;
	q[rear][1]=y;
	q[rear++][2]=0;
	while(front<rear)
	{
		for(int i=0;i<=11;i++)
		{
			int x1=q[front][0]+dx[i];
			int y1=q[front][1]+dy[i];
			if((x1>=1&&x1<=100)&&(y1>=1&&y<=100)&&a[x1][y1]==0)
			{
				a[x1][y1]=1;
				q[rear][0]=x1;
				q[rear][1]=y1;
				q[rear][2]=q[front][2]+1;
				cout<<x1<<" "<<y1<<endl;
				if(x1==1&&y1==1)
				{
					cout<<q[rear][2]<<endl;
					return;
				}
				rear++;
			}
		}
		front++;
	}
}
int main()
{
	int x1,y1,x2,y2;
	cin>>x1>>y1;
	cin>>x2>>y2;
	bfs(x1,y1);
	bfs(x2,y2);
	return 0;
}
2020/8/22 21:11
加载中...