求救,玄关

P1443 马的遍历

见后文注释 ------------ ```cpp #include<bits/stdc++.h> using namespace std; struct node{ int x,y; }z; node dlt; int yx[4]={1,-1,2,-2}; int yy[4]={1,-1,2,-2}; bool vis[405][405]; int a[405][405]; int n,m,xg,yg; queue <node> q;//十二行 void bfs(int x,int y,int step){ a[x][y]=step; vis[x][y]=false; //queue<node> q;//与第十二行重复 z.x=x; z.y=y; q.push(z); while(!q.empty()){ dlt=q.front(); q.pop(); for(int i=0;i<4;i++){ for(int j=0;j<4;j++){ if(abs(yx[i])!=abs(yy[j])){ int newx=dlt.x+yx[i]; int newy=dlt.y+yy[j]; if(newx<1 || newx>n || newy<1 || newy>m) continue; if(vis[newx][newy]){ z.x=newx; z.y=newy;//z,y???改为z.y q.push(z); vis[newx][newy]=false; a[newx][newy]=a[dlt.x][dlt.y]+1; } } } } } } int main(){ memset(vis,true,sizeof(vis)); memset(a,-1,sizeof(a)); cin>>n>>m>>xg>>yg; bfs(xg,yg,0); for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ printf("%-5d",a[i][j]); } cout<<endl; } return 0; } ```
by Lmh20101128 @ 2023-11-11 00:06:52


最后厚颜无耻的求关注。(下次一定也不是不行)
by Lmh20101128 @ 2023-11-11 00:09:16


为什么把 ``` printf("%-5d",a[i][j]); ``` 改为 ``` printf("%d ",a[i][j]); ``` 也能AC ? ? ?
by xwx123456 @ 2023-11-17 22:17:10


@[xwx123456](/user/917301) 因为题目没要求场宽,不设置场宽也对
by Puntus @ 2023-11-19 17:47:54


|