蒟蒻在线等大神们帮助(BFS)
查看原帖
蒟蒻在线等大神们帮助(BFS)
226483
King__Norman楼主2021/3/7 18:37

是不是输出有什么问题?数据也对的,为什么就是错了?

#include<bits/stdc++.h>
using namespace std;
int step[401][401],x[10001],y[10001],dx[8]={1,1,2,2,-1,-1,-2,-2},dy[8]={2,-2,-1,1,2,-2,1,-1},n,m,x1,yy1;
bool a[401][401]={0};
void search()
{
     	int head=1,tail=0;
     	x[1]=x1;
     	y[1]=yy1;
     	int step1[10001]={0};
     	step[x1][yy1]=0;
     	a[x1][yy1]=1;
     	tail++;
     	while(head<=tail)
     	{
     		for(int i=0;i<=7;i++)
     		{
     			int xx=x[head]+dx[i];
     			int yy=y[head]+dy[i];
     			if(xx<=n&&xx>0&&yy<=m&&yy>0&&a[xx][yy]==0)
     			{
     				tail++;
     				x[tail]=xx;
     				y[tail]=yy;
     				a[xx][yy]=1;
     				step1[tail]=step1[head]+1;
     				step[xx][yy]=step1[tail];
				}
			 }
			 head++;
		}
} 
int main()
{
	cin>>n>>m>>x1>>yy1;
	for(int i=1;i<=n;i++)
	  for(int j=1;j<=m;j++)
	   step[i][j]=-1;
	search();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
	   		cout<<step[i][j]<<"    ";
	   cout<<endl;
	}
	return 0;
}

菜鸡在线等,非常迷惑
2021/3/7 18:37
加载中...