HDU-2059

来源:互联网 发布:淘宝卖活鱼 编辑:程序博客网 时间:2024/06/06 14:01

动态规划,DP[i] 表示到该点的最短时间,关键在于囊括初始与终了。dp[0],dp[n+1]

#include <stdio.h>#include <string.h>#define INF 0xffff;double min(double a,double b){return a<b?a:b;}void main(){int i,j,k,m,n,L,N,C,T,VR,VT1,VT2,len;double time;int dist[100];double dp[100]={0};scanf("%d",&L);scanf("%d%d%d",&N,&C,&T);scanf("%d%d%d",&VR,&VT1,&VT2);for(i=1;i<=N;i++)scanf("%d",dist+i);dist[0]=0;dist[N+1]=L;for(i=1;i<=N+1;i++){dp[i]=INF;for(j=0;j<i;j++){time=0;len=dist[i]-dist[j];if(len>C)time+=C*1.0/VT1+(len-C)*1.0/VT2;elsetime+=len*1.0/VT1;if(j)time+=T;dp[i]=min(dp[i],dp[j]+time);}}if(dp[N+1]<L*1.0/VR)printf("what a pity");elseprintf("Good job,rabbit");}


 

0 0
原创粉丝点击