1 条题解
-
0
#include<iostream> using namespace std; struct node{ int x,y,step; }q[160001]; int head=1,tail=1,m,n,sx,sy,map1[4001][4001],dir[8][2]={{-1, 2}, {-2 , 1}, {-2, -1}, {-1, -2}, {1, -2}, {2, -1}, {2, 1}, {1, 2}}; void bfs(){ q[tail].x=sx; q[tail].y=sy; q[tail].step=0; tail++ map1[sx][sy]=0; while(head<tail){ for(int i=0;i<8;i++){ int tx=q[head].x+dir[i][0]; int ty=q[head].y+dir[i][1]; if(tx<1||tx>m||ty<1||ty>n){ continue; } if(map1[tx][ty]==-1){ q[tail].x=tx; q[tail].y=ty; q[tail].step=q[head].step+1; map1[tx][ty]=q[tail].step; tail++; } } head++; } } int main(){ cin>>m>>n>>sx>>sy; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ map1[i][j]=-1; } } bfs(); for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cout<<map1[i][j]<<" "; } cout<<endl; } return 0; }
信息
- ID
- 5501
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 48
- 已通过
- 34
- 上传者