AtCoder Beginner Contest 176 D - Wizard in Maze(01BFS)

网友投稿 619 2022-11-17

AtCoder Beginner Contest 176 D - Wizard in Maze(01BFS)

AtCoder Beginner Contest 176 D - Wizard in Maze(01BFS)

​​原题链接​​

思路:

代码

#includeusing namespace std;int n,m,sx,sy,ex,ey;char mp[1100][1100];int nx[]={0,0,1,-1};int ny[]={1,-1,0,0};bool vis[1100][1100];struct node{ int x,y,step;};int bfs(){ dequeq; q.push_front({sx,sy,0}); while(!q.empty()){ node t=q.front();q.pop_front(); int x=t.x,y=t.y,step=t.step; if(vis[x][y]) continue; vis[x][y]=1; if(t.x==ex&&t.y==ey) return t.step; for(int k=0;k<4;k++){ int xx=x+nx[k],yy=y+ny[k]; if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&!vis[xx][yy]){ if(mp[xx][yy]=='.') q.push_front({xx,yy,step}); } } for(int i=-2;i<=2;i++) for(int j=-2;j<=2;j++){ int n_x=x+i,n_y=y+j; if(n_x>=1&&n_x<=n&&n_y>=1&&n_y<=m&&!vis[n_x][n_y]&&mp[n_x][n_y]=='.'){ q.push_back({n_x,n_y,step+1}); } } } return -1;}int main(){ cin>>n>>m>>sx>>sy>>ex>>ey; for(int i=1;i<=n;i++) cin>>mp[i]+1; cout<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubernetes学习与应用(01)——什么是Kubernetes
下一篇:Spingboot JPA CriteriaBuilder 如何获取指定字段
相关文章

 发表评论

暂时没有评论,来抢沙发吧~