样例过了but爆零——蒟蒻求助
查看原帖
样例过了but爆零——蒟蒻求助
204907
封禁用户楼主2021/2/11 11:53

贴一波代码

#include<iomanip>
using namespace std;
const int fx[8][2]={{2,1},{-2,1},{-2,-1},{1,2},{-1,2},{1,-2},{-1,-2}};
struct intt
{
	int x,y,bs;
}a[300000];
int n,m,s1,t1,head,tail,map[500][500];
bool vis[500][500];
void bfs()
{
	++tail;
	a[tail].x=s1;
	a[tail].y=t1;
	a[tail].bs=0;
	vis[s1][t1]=1;
	map[s1][t1]=0;
	while(head<tail)
	{
		head++;
		for(int i=0;i<8;i++)
		{
			int xx=a[head].x+fx[i][0];
			int yy=a[head].y+fx[i][1];
			if(xx>=1&&yy>=1&&xx<=n&&yy<=m&&!vis[xx][yy])
			{
				a[++tail].x=xx;
				a[tail].y=yy;
				a[tail].bs=a[head].bs+1;
				map[xx][yy]=a[tail].bs;
				vis[xx][yy]=1;
			}
		}
	}
}
void out()
{
	for(int i=1;i<=n;i++)
	{
	    for(int j=1;j<=m;j++)
		  if(vis[i][j]==0)
			cout<<-1<<setw(5);
		  else
		    cout<<map[i][j]<<setw(5); 
		cout<<"\n";
	}
}
int main()
{
	cin>>n>>m>>s1>>t1;
	bfs();
	out();
}
2021/2/11 11:53
加载中...