1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> using namespace std; int x[300],n,m,k,d[5000][5000],e,i,j,kk; int main() { //freopen("lift.in","r",stdin); //freopen("lift.out","w",stdout); cin>>n>>m>>kk; for (i=1;i<=n;++i) for (j=1;j<=n;++j) d[i][j]=5000; for (i=1;i<=n;++i) { cin>>x[i]; if (i-x[i]>=1) d[i][i-x[i]]=1; if (i+x[i]<=n) d[i][i+x[i]]=1; } for (k=1;k<=n;++k) for (i=1;i<=n;++i) for (j=1;j<=n;++j) if (d[i][k]+d[k][j]<d[i][j]&&d[i][k]>0&&d[k][j]>0) d[i][j]=d[i][k]+d[k][j]; /*for (i=1;i<=n;++i) for (j=1;j<=n;++j) cout<<d[i][j]<<" ";*/ if (m==kk) cout<<"0"; else if (d[m][kk]<5000) cout<<d[m][kk]; else cout<<"-1"; //fclose(stdin); //fclose(stdout); return 0; }
- 1
信息
- ID
- 1410
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者