求助!3个AC,其余全WA!数组已经开得够大的了!
查看原帖
求助!3个AC,其余全WA!数组已经开得够大的了!
540979
流泪的小酒窝楼主2021/8/19 09:50

求助大佬!3个AC,7个WA

找bug快累死了,还是错了……(小声)

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int map[450][450];
bool vis[450][450];
long Path[170000][3];//x是0,y是1
long head,tail;
int n,m,x,y;
int xx[8]={1,2,2,1,-1,-2,-2,-1};
int yy[8]={2,1,-1,-2,-2,-1,1,2};
void bfs()
{
	while(head!=tail)
	{
		++head;
		int x=Path[head][0];
		int y=Path[head][1];
		map[x][y]=Path[head][2];
		for(int i=0;i<8;i++)
		{
			int x2=x+xx[i];
			int y2=y+yy[i];
			if(!vis[x2][y2]&&x2>0&&y2>0&&x2<=n&&y2<=m)
			{
				++tail;
				vis[x][y]=1;
				Path[tail][0]=x2;
				Path[tail][1]=y2;
				Path[tail][2]=map[x][y]+1;
			}
		}
	}
}
int main()
{
	memset(map,-1,sizeof(map));
	cin>>n>>m>>x>>y;
	++tail;
	Path[tail][0]=x;
	Path[tail][1]=y;
	Path[tail][2]=0;
	map[x][y]=0;
	bfs();
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			printf("%-5d",map[i][j]);
		}
		printf("\n");
	}
	printf("\n \n %d %d",head,tail);
 } 
2021/8/19 09:50
加载中...