厌氧型代码
查看原帖
厌氧型代码
1351583
skyxin_2506楼主2024/7/1 08:02

why开O2爆RE?

不开就过了

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,x,y;
const int dx[8]={2,1,1,2,-1,-2,-2,-1};
const int dy[8]={1,2,-2,-1,2,1,-1,-2};
bool vis[410][410]={};
int que[400030][4],a[410][410];
int bfs(int x,int y)
{
	int tail=1,head=1;
	que[head][3]=0; a[x][y]=que[1][3];
		vis[x][y]=1;
	que[tail][1]=x,que[tail][2]=y;
	for(head=1;head<=tail;head++)
	{
		for(int i=0;i<8;i++)
		{
			int xx=que[head][1]+dx[i],yy=que[head][2]+dy[i];
			if(xx<1||yy<1||xx>n||yy>m) continue;
			if(!vis[xx][yy])
			{
				
				vis[xx][yy]=1;
				que[++tail][1]=xx,que[tail][2]=yy;
				que[tail][3]=que[head][3]+1;
//				cout<<tail<<" "<<que[tail][3]<<endl;;
					a[xx][yy]=que[tail][3];
				
			}
		}
	}
}
signed main()
{
//	freopen("knight.in","r",stdin);
//	freopen("knight.out","w",stdout);
	cin>>n>>m>> x>> y ;
	memset(a,-1,sizeof(a));
	if(!vis[x][y])
	bfs(x,y);
	for(int i=1;i<=n;i++)
		{
			for(int l=1;l<=m;l++)
			cout<<a[i][l]<<' ';
			cout<<endl;
		}
		
	return 0;
}
2024/7/1 08:02
加载中...