八个点TLE,最后一个WA,第二个点+样例能过,求大神帮忙!!!

P1443 马的遍历

@[zuoyichen](/user/109678) 可以看看我的: ```cpp #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<map> #include<queue> #include<stack> #include<stdio.h> //#define int __int128 //const int mod (1e9+7); //#define int long long // const int inf=0x7fffff; // const int maxn=20023; using namespace std; struct node { int x,y; }; int n,m,a[405][405],v[405][405],dx[]={-1,-2,-2,-1,1,2,2,1},dy[]={2,1,-1,-2,2,1,-1,-2},xx,yy; inline bool bfs() { queue<node> q; q.push({xx,yy}); while(q.size()) { node dt=q.front(); q.pop(); // if(dt.x==n) return true ; for(int i=0;i<8;i++) { int x=dt.x+dx[i]; int y=dt.y+dy[i]; if(x<1||y<1||x>n||y>m||v[x][y]) { continue ; } v[x][y]=1; a[x][y]=a[dt.x][dt.y]+1; q.push({x,y}); } } return 0; } signed main() { cin>>n>>m>>xx>>yy; memset(a,-1,sizeof(a)); a[xx][yy]=0; v[xx][yy]=1; bfs(); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { printf("%-5d",a[i][j]); } printf("\n"); } return 0; } ``` 建议您重写
by xingcode @ 2023-02-26 08:07:04


|