zoukankan      html  css  js  c++  java
  • hdu2059 龟兔赛跑 DP

    N^2的dp,刚入门的时候很难想到,dp[i]表示到达第i个点的最小时间,可以从之前任意一点处加上充电时间充电转移过来。

     1 #include<stdio.h>
     2 #define min(a,b) (a)<(b)?a:b
     3 int L,N,C,T,VR,VT1,VT2,p[102];
     4 double f(int d)
     5 {
     6      if(d<=C) return (double)d/VT1+T;
     7      else return (double)C/VT1+(double)(d-C)/VT2+T;
     8 }
     9 int main(){
    10     while(scanf("%d%d%d%d%d%d%d",&L,&N,&C,&T,&VR,&VT1,&VT2)!=EOF){
    11         double tr=(double)L/VR,ans[102];
    12         int i,j;
    13         for(i=1;i<=N;i++)scanf("%d",&p[i]);
    14         p[N+1]=L;
    15         for(i=1;i<=N+1;i++){
    16             ans[i]=f(p[i])-T;
    17             for(j=1;j<i;j++) ans[i]=min(ans[i],(ans[j]+f(p[i]-p[j])));
    18         }
    19         if(ans[N+1]<tr) printf("What a pity rabbit!
    ");
    20         else printf("Good job,rabbit!
    ");
    21     }
    22     return 0;
    23 }
    View Code
  • 相关阅读:
    二极管测试
    MOS开关速度
    STM8L PWM输出通道
    STM8Lpwm
    IAR 使用技巧
    java学习第十一天
    java学习第十天
    java学习第九天
    部分总结
    发现一篇好文,说的很详细,先收藏了。
  • 原文地址:https://www.cnblogs.com/cenariusxz/p/6577898.html
Copyright © 2011-2022 走看看