蒟蒻求助
  • 板块P1443 马的遍历
  • 楼主YQWQ
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/7/31 20:34
  • 上次更新2023/10/27 17:34:56
查看原帖
蒟蒻求助
490974
YQWQ楼主2022/7/31 20:34

对了前三个点,后面全TLE

#include <bits/stdc++.h>
using namespace std;
int Nmap[405][405],nx[10]={-2,-2,-1,-1,1,1,2,2},ny[10]={-1,1,-2,2,-2,2,-1,1};    
struct E{
	int x,y,bs;	
}a;

int main(){
	int n,m,x,y;
	cin>>n>>m>>x>>y;
	queue<E> dl;
	a.x=x,a.y=y,a.bs=1;
	dl.push(a);//初始化
	while(!dl.empty()){//如果队列空了就停止 
		Nmap[dl.front().x][dl.front().y]=dl.front().bs;
		for(int i=0;i<8;i++){
			if(dl.front().x+nx[i]>=1&&dl.front().x+nx[i]<=n&&dl.front().y+ny[i]>=1&&dl.front().y+ny[i]<=m&&Nmap[dl.front().x+nx[i]][dl.front().y+ny[i]]==0){             
				E Ndl;
				Ndl.x=dl.front().x+nx[i];
				Ndl.y=dl.front().y+ny[i];
				Ndl.bs=dl.front().bs+1;
				dl.push(Ndl);
			}
		}
		dl.pop();
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			Nmap[i][j]--;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			printf("%-5d",Nmap[i][j]);
		}
		printf("\n");
	}
}
2022/7/31 20:34
加载中...