社区讨论
40分求调
P1443马的遍历参与者 1已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhizdj0x
- 此快照首次捕获于
- 2025/11/03 18:11 4 个月前
- 此快照最后确认于
- 2025/11/03 18:11 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int a[160005][2],n,m,x3,y3;
int see[405][405];
int dx[8]={1,1,-1,-1,2,-2,2,-2},dy[8]={2,-2,2,-2,1,1,-1,-1};
void bfs(int w){
int i=0;
while(i<=w){
i++;
for(int j=0;j<8;j++){
int xx=a[i][0]+dx[j],yy=a[i][1]+dy[j];
if(xx>0&&xx<=n&&yy>0&&yy<=n&&see[xx][yy]==-1){
w++;
see[xx][yy]=see[a[i][0]][a[i][1]]+1;
a[w][0]=xx;
a[w][1]=yy;
// cout<<1<<endl;
}
// cout<<xx<<" "<<yy<<" "<<i<<endl;
}
}
}
int main(){
cin>>n>>m>>x3>>y3;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)see[i][j]=-1;
}
a[1][0]=x3;
a[1][1]=y3;
see[x3][y3]=0;
bfs(1);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)cout<<see[i][j]<<" ";
cout<<endl;
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...