100 3 20 5 5 8 2 10 40 60 100 3 60 5 5 8 2 10 40 60
Good job,rabbit! What a pity rabbit!
#include<stdio.h> #include<string.h> const double inf=0xfffff; double dp[110];// dp[i] :到达第 i 个充电站的最短时间; int p[110]; double min(double a,double b){ return a<b?a:b; } int main(){ int L; while(~scanf("%d",&L)){ int i,j,N; int C,T,Vr,VT1,VT2; scanf("%d%d%d",&N,&C,&T); scanf("%d%d%d",&Vr,&VT1,&VT2); for(i=1;i<=N;++i){ scanf("%d",&p[i]); } p[N+1]=L; p[0]=0; dp[0]=0; double dis,ti_j; for(i=1;i<=N+1;++i){ dp[i]= inf; for(j=0;j<i;++j){ dis=p[i]-p[j]; if(dis>C) ti_j= 1.0*C/VT1+1.0*(dis-C)/VT2; else ti_j= 1.0*dis/VT1; if(j>0) ti_j+=T; dp[i]=min(dp[j]+ti_j,dp[i]); } } if(dp[N+1]<1.0*L/Vr) printf("What a pity rabbit!\n"); else printf("Good job,rabbit!\n"); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/qq_18062811/article/details/47449123