19 条题解
-
0
#include<bits/stdc++.h> using namespace std; int fx[5]={0,-1,1,0,0},fy[5]={0,0,0,-1,1},n,m,ans=INT_MAX,x,y,p,f[1100][200]; char a[1100][200]; void sy(int x,int y,int s) { if (a[x][y]=='*') { p=1; ans=min(ans,s); return; } for (int i=1;i<=4;i++) { int tx=x+fx[i],ty=y+fy[i]; if (tx<=n&&tx>=1&&ty>=1&&ty<=m&&a[tx][ty]!='#') if (s+1<f[tx][ty]) { f[tx][ty]=s+1; sy(tx,ty,s+1); } } } int main() { 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]=='@') x=i,y=j; f[i][j]=INT_MAX; } sy(x,y,0); if (p==1) cout<<ans; else cout<<"-1"; }
信息
- ID
- 103
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 47
- 已通过
- 15
- 上传者