玄关求助!样例过了,但全RE!!!
查看原帖
玄关求助!样例过了,但全RE!!!
972794
wanye_and_haiousang楼主2024/7/4 10:09
#include<bits/stdc++.h>
using namespace std;
queue<int>q1;queue<int>q2;
const int N=401;
int n,m,dt[N][N];
int xx[8]={1,2,2,1,-1,-2,-2,-1};
int yy[8]={2,1,-1,-2,-2,-1,1,2};
int bfs(){
	while(q1.size()){
		int x=q1.front(),y=q2.front();
		q1.pop(),q2.pop();
		for(int i=0;i<8;i++){
			int bs=dt[x][y];
			if(x+xx[i]>=1&&x+xx[i]<=n&&y+yy[i]>=1&&y+yy[i]<=m&&dt[x+xx[i]][y+yy[i]]==-1){
				q1.push(x+xx[i]),q2.push(y+yy[i]);dt[x+xx[i]][y+yy[i]]=bs+1;
			}
		}
	}
}
int main(){
	memset(dt,-1,sizeof dt);
	int x1,y11;
	cin>>n>>m;
	cin>>x1>>y11;
	q1.push(x1);q2.push(y11);dt[x1][y11]=0;
	bfs();
	for(int i=1;i<=n;i++){
	    for(int j=1;j<=m;j++){
	        cout<<dt[i][j]<<" ";
	    }
	    cout<<endl;
	}
}
2024/7/4 10:09
加载中...