7个MLE,佬们看看,实在不懂怎么优化
查看原帖
7个MLE,佬们看看,实在不懂怎么优化
955672
seasonl楼主2023/3/19 07:56
#include<bits/stdc++.h>
using namespace std;

const int N=401; 
int visited[N][N];
 struct node{
	int x,y;
};
int dx[8]={-2,-1,1,2,2,1,-1,-2};
int dy[8]={1,2,2,1,-1,-2,-2,-1};
int num=0;

int m[N][N];

int n,k,a,b;
int nx,ny;
queue<node> q;

node Node,top;


void BFS(int x,int y){

	visited[x][y]=1;
	Node.x=x;
	Node.y=y;

	q.push(Node);

	while(!q.empty()){
		
		 top=q.front();
		q.pop();

		visited[top.x][top.y]=1;

		for(int i=0;i<8;i++){
     		 nx=top.x+dx[i];
			 ny=top.y+dy[i];
			if(nx>=1&&nx<=n&&ny>=1&&ny<=k&&visited[nx][ny]==0){
				Node.x=nx;
				Node.y=ny;
				m[nx][ny]=m[top.x][top.y]+1;
				q.push(Node);
			}
		}
	}
}

int main(){
	cin>>n>>k>>a>>b;
	BFS(a,b);
	for(int i=1;i<=n;i++ ){
		for(int j=1;j<=k;j++){
			if(visited[i][j]==0)m[i][j]=-1;
			cout<<left<<setw(5)<<m[i][j];
		}
		cout<<endl;
	}
	return 0;
}
2023/3/19 07:56
加载中...