zoukankan      html  css  js  c++  java
  • HDU

    http://acm.hdu.edu.cn/showproblem.php?pid=2059

    初始把起点和终点也算做充电站,设dp[i]是到第i个充电站的最短时间,那么dp[n+1]即是乌龟到达终点的最短时间.

    每次到达第i个点,j:0-i-1;去找能不能用从第j个充电站直接到达 i 来更新最短时间。

    注意细节处理.

     1 #include<iostream>
     2 #include<cstring>
     3 #include<cstdio>
     4 using namespace std;
     5 const double inf = 0xfffffff;
     6 int N;
     7 double L,C,T;
     8 double vr,vt1,vt2;
     9 double s[150];
    10 double dp[150];
    11 
    12 int main()
    13 {
    14     //freopen("a.txt","r",stdin);
    15     while(~scanf("%lf",&L))
    16     {
    17         scanf("%d%lf%lf",&N,&C,&T);
    18         scanf("%lf%lf%lf",&vr,&vt1,&vt2);
    19         for(int i=1;i<=N;i++)
    20             scanf("%lf",&s[i]);
    21         s[0]=0;s[N+1]=L; //把起点和终点当成充电站,方便处理
    22         dp[0]=0;//第0个充电站的最短距离为0
    23         double m=0;
    24         for(int i=1;i<=N+1;i++)
    25         {
    26             dp[i]=inf;  //初始为 无穷大
    27             for(int j=0;j<i;j++)
    28             {
    29                 m=0;
    30                 int x=s[i]-s[j];
    31                 if(x>C)  //第i个充电站到第j个充电站的距离 > C
    32                 {   //把电动车行驶的时间加上乌龟用脚踏的时间
    33                     m=C/vt1+(x-C)/vt2;
    34                 }
    35                 else m=x/vt1;//直接加上这段距离除于电动车的速度所得的时间
    36                 if(j>0)
    37                 {//这里判断j>0是因为如果j==0的话,即表明从起点出发,因为起点已经充满电了所以不需要加上电动车的充电时间
    38                     m+=T;
    39                 }
    40                 m+=dp[j];//之后加上到第j个加电站的最优时间
    41               //  printf("%.0lf
    ",m);
    42                 dp[i]=min(m,dp[i]);
    43             }
    44           //  printf("%.0lf
    ",dp[i]);
    45         }
    46         if(dp[N+1]>(L/vr)) printf("Good job,rabbit!
    ");
    47         else printf("What a pity rabbit!
    ");
    48     }
    49     return 0;
    50 }
  • 相关阅读:
    uni-app、VUE、微信小程序之异同
    git学习之通俗易懂篇(四)
    css学习之-----flex布局
    git学习之通俗易懂篇(三)
    git学习之通俗易懂篇(二)
    防止非法登录
    MVC 路由配置
    C# 跨线程调用控件
    【推荐】gitee 的使用,sts4公钥私钥的配置,
    查看java的springboot的内存占用
  • 原文地址:https://www.cnblogs.com/nowandforever/p/4567196.html
Copyright © 2011-2022 走看看