A8048
2025-05-03 16:09:13
发布于:江苏
1阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
int vis[2005][2005]={},x,y,bx[8]={-2,-1,1,2,2,1,-1,-2},by[8]={1,2,2,1,-1,-2,-2,-1},lx,ly,n,m,b=0;
queue<int>q,r;
int main(){
cin>>n>>m>>lx>>ly;
memset(vis,-1,sizeof(vis));
vis[lx][ly]=0;
q.push(lx);
r.push(ly);
while(r.size()){
x=q.front();
y=r.front();
q.pop();
r.pop();
for(int i=0;i<8;i++){
if(x+bx[i]>=1&&x+bx[i]<=n&&y+by[i]>=1&&y+by[i]<=m&&vis[x+bx[i]][y+by[i]]==-1){
vis[x+bx[i]][y+by[i]]=vis[x][y]+1;
q.push(x+bx[i]);
r.push(y+by[i]);
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<vis[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个