BFS写错了??蒟蒻看不出来

P1443 马的遍历

```cpp // luogu-judger-enable-o2 #include<iostream> #include<queue> #include<utility> #include<cstdio> #include<cstring> using namespace std; const int dx[]={1,1,2,2,-1,-1,-2,-2}; const int dy[]={-2,2,-1,1,-2,2,-1,1}; bool is_ok(int x,int y,int n,int m){ return x<=n&&y<=m&&x>=1&&y>=1; } queue<pair<int,int> >q; int mp[405][405]; int main(){ memset(mp,-1,sizeof(mp)); int n,m,fx,fe; cin>>n>>m>>fx>>fe; q.push(make_pair(fx,fe)); mp[fx][fe]=0; while(!q.empty()){ pair<int,int>t=q.front(); q.pop(); int x=t.first,y=t.second; for(int i=0;i<8;i++){ int nx=x+dx[i]; int ny=y+dy[i]; if(is_ok(nx,ny,n,m)&&mp[nx][ny]==-1){ mp[nx][ny]=mp[x][y]+1; q.push(make_pair(nx,ny)); } } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++) printf("%-5d",mp[i][j]); printf("\n"); } return 0; } ```
by sss7020 @ 2019-03-27 17:20:39


|