社区讨论
完了我连sb题都做不出来了
P1443马的遍历参与者 6已保存回复 15
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 15 条
- 当前快照
- 1 份
- 快照标识符
- @mi7yyzzi
- 此快照首次捕获于
- 2025/11/21 05:54 4 个月前
- 此快照最后确认于
- 2025/11/21 06:46 4 个月前
啊我太弱了嘤嘤嘤
CPP#include<cstdio>
#include<iomanip>
#include<queue>
#include<cstring>
using std::memset;
using std::queue;
int n,m;
bool c[1001][1001];
int ans[1001][1001];
int dx[8]={-2,-1,1,2,2,1,-1,-2};
int dy[8]={-1,-2,-2,-1,1,2,2,1};
queue<int>hori;
queue<int>para;
int ccnt=-1;
void bfs(int x,int y){
ccnt++;
ans[x][y]=ccnt;
c[x][y]=false;
for(int i=1;i<=8;i++){
for(int j=1;i<=8;j++){
int ax=x+dx[i];
int ay=y+dy[j];
if(ax>=1&&ax<=n&&ay>=1&&ay<=m&&c[ax][ay]!=false){
hori.push(ax);
para.push(ay);
}
}
}
if(para.size()!=0){
int cx=hori.front();
int cy=para.front();
hori.pop();para.pop();
bfs(cx,cy);
}
}
int main(){
memset(c,true,sizeof(c));
memset(ans,-1,sizeof(ans));
scanf("%d%d",&n,&m);
int x,y;
scanf("%d%d",&x,&y);
bfs(x,y);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
printf("%d ",ans[i][j]);
}
printf("\n");
}
return 0;
}
回复
共 15 条回复,欢迎继续交流。
正在加载回复...