有WA有AC有TLE,就很离谱

P1443 马的遍历

``` #include <bits/stdc++.h> using namespace std; int xnext[8] = {1,2,-1,-2,-1,2,1,-2}; int ynext[8] = {2,1,-2,-1,2,-1,-2,1}; struct Node{ int x; int y; int u; }; queue<Node> q; int main(){ int sum = 0; int n; int xn; int m; int yn; cin>>n>>m>>xn>>yn; bool pd[401][401]; int ans[401][401]; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ pd[i][j]=0; ans[i][j]=-1; } } q.push(Node{xn,yn,0}); while(!q.empty()){ Node p = q.front(); // 队头 int x = p.x; int y = p.y; if(ans[x][y]==-1){ ans[x][y]=p.u; } q.pop(); // 将队头元素出队 for(int i = 0 ; i < 8 ; i++){ if(x+xnext[i]<=n&&y+ynext[i]<=m&&x+xnext[i]>=1&&y+ynext[i]>=1&&!pd[x+xnext[i]][y+ynext[i]]){ pd[x+xnext[i]][y+ynext[i]]=1; q.push(Node{x+xnext[i],y+ynext[i],p.u+1}); } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ cout<<ans[i][j]<<" "; } cout<<endl; } }
by fukaluosidego @ 2023-08-01 17:10:05


thanks
by ling_xi_ @ 2023-09-05 19:23:58


|