Description

护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队到达了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。每辆车的重量是已知的。任何一组车队
的重量之和不能超过桥的最大承重量。被分在同一组的每一辆车都以其最快的速度通过该桥。一组车队通过该桥的时间是用该车队中速度最慢的车通过该桥所需的时间来表示的。

问题要求计算出全部护卫车队通过该桥所需的最短时间值。

Input

输入文件中的第一行包含三个正整数(用空格隔开),第一个整数表示该桥所能承受的最大载重量(用吨表示),第二个整数表示该桥的长度(用千米表示),第三个整数表示该护卫队中车辆的总数(n<1000)。

接下来的几行中,每行包含两个正整数W和S(用空格隔开),W表示该车的重量(用吨表示),S表示该车过桥能达到的最快速度(用千米/小时表示)。车子的重量和速度是按车子排队等候时的顺序给出的。

Output

输出文件中应该是一个实数,四舍五入精确到小数点后1位,表示整个护卫车队通过该桥所需的最短时间(用分钟表示)。

Sample Input
100 5 10
40 25
50 20
50 20
70 10
12 50
9 70
49 30
38 25
27 50
19 70

Sample Output

75.0


设f[i]为前i辆车最短时间,vmin[i][j]为第i辆车到第j辆车的最慢速度,sum[i][j]为第i~j辆车的重量。
就很容易推出方程,枚举在哪个地方分一队,判断这队的重量是否超重,没有则f[i]=min(f[i],f[j-1]+(double)len/vmin[j][i]);


代码如下:

#include<iostream>
#include<cstdlib>
#include<cstdio>
using namespace std;
double f[1001];
long long len,wei,n,w[1001],v[1001],sum[1001],vmin[1001][1001];
int main ()
{
    scanf ("%I64d%I64d%I64d",&wei,&len,&n);
    for (int i=1;i<=n;++i)
    {        scanf ("%I64d%I64d",&w[i],&v[i]);
        sum[i]=sum[i-1]+w[i];
        vmin[i][i]=v[i];
    }
    for (int i=1;i<n;++i)
        for(int j=i+1;j<=n;++j)
            vmin[i][j]=min(v[j],vmin[i][j-1]);
    for (int i=1;i<=n;++i)
    {        f[i]=(double)len/v[i]+f[i-1];
        for (int j=i-1;j>=1;--j)
            if (sum[i]-sum[j-1]<=wei)f[i]=min(f[i],f[j-1]+(double)len/vmin[j][i]);
            else break;
    }
    printf ("%.1lf",f[n]*60);
    return 0;
}

转载于:https://www.cnblogs.com/Comfortable/p/8412306.html

SSL 2299——护卫队相关推荐

  1. 【SSL】2299护卫队

    [SSL]2299护卫队 Time Limit:1000MS Memory Limit:65536K Description 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条 ...

  2. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  3. debian10 apache2使用ssl

    安装apache2 apt-get install apache2 修改配置 vim /etc/apache2/sites-available/default-ssl.conf 这里修改为你的证书位置 ...

  4. linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.

    所有的base 都要取消注释 mirrorlist 加上注释 另外所有的enable都要设为零 目录 今天是要yum命令安装EPEL仓库后 yum install epel-release 突然发现y ...

  5. jenkins ssl证书报错问题解决

    Jenkins 是一款流行的开源持续集成工具用于项目开发,具有自动化构建.测试和部署等功能. 可以.war的方式来运行Jenkins: 从Jenkins下载jenkins.war. 在目录下运行:ja ...

  6. SSL For Free 申请免费https SSL 凭证

    打开 SSL For Free网站(https://www.sslforfree.com) ,在输入框中填入你要申请 Let's Encrypt 凭证的网域名称,可以用空白来分隔不同的网址,例如[su ...

  7. 使用jdk生成ssl证书文件

    java自带有 ssl 证书生成的工具, 在 /bin/keytools.exe 需要确认已经正确配置JAVA_HOME的环境变量 生成服务端证书: keytool -genkey -v -alias ...

  8. [原]SSL 开发简述(Delphi)

    一.            简介 现在网上有关SSL的资料较多的是基于VC开发,Delphi的SSL开发资源很少. 本文主要使用OpenSSL为基础,讲述SSL的有关开发流程.OpenSSL功能非常丰 ...

  9. mysql cert_Mysql使用SSL连接

    最近项目中用到了SSL连接,记录一下,环境为windows10,Mysql版本为5.6 查看是否支持 SSL 首先在 MySQL 上执行如下命令, 查询是否 MySQL 支持 SSL: mysql&g ...

最新文章

  1. 联合索引最左匹配原则成因
  2. Cell综述:口腔微生物群的部位特点:微米级生境与生态位
  3. AttributeError: module ‘cv2.cv2‘ has no attribute ‘xfeatures2d‘解决方法
  4. Silverlight设计时特性的使用
  5. Touch UI:高质量的移动端UI框架介绍
  6. LeNet试验(二)权重参数随训练的变化
  7. 01.elasticsearch请求使用的基本语法
  8. MFC多文档应用程序同时显示两个视图
  9. 在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法
  10. wordl流程图怎么写字_DLG的制作流程图
  11. 手机为什么取消了内存卡?
  12. mySQL用户和权限管理v1
  13. 对比Linux系统和Windows系统哪个更好
  14. 华为手机邮箱发件服务器端口设置,华为手机设置-华为手机POP3设置
  15. 玻尔兹曼机(Boltzmann机)和深度置信网络基本概念
  16. 深入了解电容器,电容器有哪些主要作用?
  17. “打印机安装失败,请检查打印服务”问题解决方案
  18. 科幻-奇幻小说TOP100
  19. 计算机专业夏令营英语面试范文,夏令营英语面试自我介绍
  20. python用cartopy包画地图_python – 使用Cartopy在地图上显示图像时的投影问题

热门文章

  1. SQL Server提挂起问题
  2. 测试了3种获取中英文混合字符串长度的方法,看来还是使用循环来的快
  3. linux python进入桌面,使用Linux桌面的几个尴尬问题
  4. CSS 经典布局(两栏布局 + 三栏布局 + 圣杯布局 + 双飞翼布局)
  5. Material设计之Palette
  6. 从 jQuery 获取元素名(tagName)
  7. 计算机毕业设计 基于java web的在线考试系统(源码+论文)
  8. ansible角色部署mysql主从复制
  9. 支付系统的对账处理:对账,轧账,平账,交易记录,退款记录
  10. python书籍推荐知乎-python书籍推荐知乎排学生