1 条题解
-
2
#include<bits/stdc++.h> using namespace std; int n,m,qx,qy,zx,zy,dx[] {1,0,-1,0},dy[] {0,-1,0,1}; char a[305][305]; bool vis[305][305]; struct node { int x,y,step; }; void bfs(int x,int y) { queue<node> q; q.push({x,y,0}); vis[x][y]=1; while(!q.empty()) { node fr=q.front(); q.pop(); if(fr.x==zx&&fr.y==zy){ cout<<fr.step; return; } for(int i=0; i<4; i++) { int nx=fr.x+dx[i]; int ny=fr.y+dy[i]; if(vis[nx][ny])continue; if(a[nx][ny]=='*')continue; q.push({nx,ny,fr.step+1}); vis[nx][ny]=1; } } cout<<"I can't eat brain!"; } int main() { memset(a,'*',sizeof(a)); cin>>n>>m; for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { cin>>a[i][j]; if(a[i][j]=='z') { qx=i; qy=j; } if(a[i][j]=='#') { zx=i; zy=j; } } } bfs(qx,qy); return 0; }
- 1
信息
- ID
- 158
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 9
- 已通过
- 3
- 上传者