zoukankan      html  css  js  c++  java
  • hdu 6851 Vacation(思维+贪心)

    传送门

    •题意

    有编号0到n,n+1辆车排队过红绿灯,从0到n离交通灯线越来越近

    每辆车都有一个最大速度v,车身长度l,和离交通灯线的距离s,

    一辆车头到达线则说明这辆车已到达线

    如果一辆车前面没有紧邻着一辆车,那么这辆车可以以最大速度行驶

    如果前面紧邻着一辆车,则车头贴着前一辆车尾行驶,不能超车!

    即使过了交通灯线也不能超车!

    问第0辆也就是离线最远的一辆,到达线的最短时间

    •思路

    既然不能超车,那么最远的车到线时有两种可能

    ①自己到线 $t=frac{s_{0}}{v_{0}}$

    ②接在第p辆车后面到线 $frac{s_{p}+sum_{1}^{p}l_{i}}{v_{p}}$

    解释一下接在某辆车后面为什么是这样算

     假设有两辆车$a_{1}$速度为$v$,$a_{0}$速度为$2v$

    当前面的车到达$p$点时,同时后面的车到达${p}'$ ,两者所花时间相同

    同理可知

    当$a_{1}$到达$O$点时,$a_{0}$到达$l_{1}$点,也就是$a_{0}$离终点线的距离是$a_{1}$的车长

    ②式也就是如果连在了第$p$辆车后面($p$后面的车全都连起来了)

    当第$p$辆车到达终点线时,最远的一辆车离终点线的距离就是$p$后面所有车的车长-最后一辆车自身车长

    也就是$sum=sum_{1}^{p}l_{i}$

    所以行驶的时间就是$p$车行驶时间+最远的车以$v_{p}$行驶$sum$的时间即$frac{s_{p}}{v_{p}}+frac{sum_{1}^{p}l_{i}}{v_{p}}$

    由于接在那辆车后面不确定,所以可以算最大的时间,

    行驶时间长说明速度慢,后面速度快的肯定会接在他后面

    •代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e6+6;
     4 double l[maxn],s[maxn],v[maxn];
     5 double sum[maxn];
     6 int main()
     7 {
     8     int n;
     9     while(~scanf("%d",&n))
    10     {
    11         for(int i=0;i<=n;i++)
    12         {
    13             scanf("%lf",&l[i]);
    14             if(i==0)
    15                 continue;
    16             sum[i]=sum[i-1]+l[i];
    17         }
    18         for(int i=0;i<=n;i++)
    19             scanf("%lf",&s[i]);
    20         for(int i=0;i<=n;i++)
    21             scanf("%lf",&v[i]);
    22 
    23         ///单独过终点
    24         double ans=s[0]/v[0];
    25 
    26         ///排队过终点
    27         for(int i=1;i<=n;i++)
    28             ans=max(ans,(s[i]+sum[i])/v[i]);
    29 
    30         printf("%.10f
    ",ans);
    31     }
    32 }
    View Code
  • 相关阅读:
    好玩的贪吃蛇小游戏,有趣极了!
    vue的多选框存储值操作
    vue和jquery嵌套实现异步ajax通信
    vue的组件学习———做一个简易机器人
    vue监听属性完成首字母大小写转换
    Vue多选框的绑定
    Vue.js的简介、属性
    MySQL数据库(5)
    DRF的json web token方式完成用户认证
    DRF跨域问题
  • 原文地址:https://www.cnblogs.com/MMMinoz/p/11599937.html
Copyright © 2011-2022 走看看