1066: [视频]动态规划入门(一维一边推4:护卫队)
时间限制: 1 Sec 内存限制: 128 MB
提交: 262 解决: 95
[提交][状态][讨论版]
题目描述
【问题描述】
护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥。因为街道是一条单行道,所以任何车辆都不能超车。桥能承受一个给定的最大承载量。为了控制桥上的交通,桥两边各站一个指挥员。护卫车队被分成几个组,每组中的车辆都能同时通过该桥。当一组车队到达了桥的另一端,该端的指挥员就用电话通知另一端的指挥员,这样下一组车队才能开始通过该桥。每辆车的重量是已知的。任何一组车队的重量之和不能超过桥的最大承重量。被分在同一组的每一辆车都以其最快的速度通过该桥。一组车队通过该桥的时间是用该车队中速度最慢的车通过该桥所需的时间来表示的。问题要求计算出全部护卫车队通过该桥所需的最短时间值。

【输入文件】
输入文件第一行包含三个正整数(用空格隔开),第一个整数表示该桥所能承受的最大载重量(用吨表示);第二个整数表示该桥的长度(用千米表示);第三个整数表示该护卫队中车辆的总数(n<1000)。接下来的几行中,每行包含两个正整数W和S(用空格隔开),W表示该车的重量(用吨表示),S表示该车过桥能达到的最快速度(用千米/小时表示)。车子的重量和速度是按车子排队等候时的顺序给出的。

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

本题要学会解释有没有后效性。
输入
输出
样例输入
100 5 10
40 25
50 20
50 20
70 10
12 50
9 70
49 30
38 25
27 50
19 70
样例输出
75.0

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long maxweight,length,n;
long long sw[1100];
double st[1100],f[1100],x,v;
int main()
{scanf("%lld%lld%lld",&maxweight,&length,&n);sw[0]=0;for (int i=1;i<=n;i++){scanf("%lf %lf",&x,&v);st[i]=length/v*60.0000;sw[i]=sw[i-1]+x;// , }for (int i=1;i<=n;i++)f[i]=999999999999999.0;f[0]=0;for (int i=1;i<=n;i++){double mt=-999999999999999.0;for (int j=i;j>=1;j--){if (sw[i] -sw[j-1]>maxweight) break;else{mt=max(mt,st[j]);f[i]=min(f[i],f[j-1]+mt);}}}printf("%.1lf\n",f[n]);return 0;
}

1066:护卫队 (动态规划)相关推荐

  1. P1594 护卫队-动态规划

    护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个指挥员.护卫车队被分成几个组, ...

  2. caioj 1066 动态规划入门(一维一边推4:护卫队)(分组型dp总结)

    很容易想到f[i]为前i项的最优价值,但是我一直在纠结如果重量满了该怎么办. 正解有点枚举的味道. 就是枚举当前这辆车与这辆车以前的组合一组,在能组的里面取最优的. 然后要记得初始化,因为有min,所 ...

  3. 洛谷1594 护卫队(动态规划) 解析

    题目 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个指挥员.护卫车队被分成几 ...

  4. 护卫队(动态规划+ST表)

    护卫队 题目描述: 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个指挥员.护 ...

  5. 噩梦中的仙境:动态规划之区间一维

    目录 那年初夏(三) 引入 1.动态规划是什么? 2.什么是区间动态规划问题? 定义 性质 3.为何总是要问这种问题? 区间动态规划基本 思考 步骤(划重点) 例题精讲 1.最长上升子序列 题目描述 ...

  6. 洛谷1594 护卫队 (st算法)

    评测链接:http://www.luogu.org/problem/show?pid=1594 题目描述 Description 护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是 ...

  7. 动态规划系列之六01背包问题

    法外狂徒张三是一个探险家,有一次巧合之下进入到一个有宝藏的洞穴里.这个洞穴有很多个不重复的宝贝,同时每个宝贝的重量也不一样.具体来说有: A 重 2 价值为 2 B 重 3 价值为 6 C 重 4 价 ...

  8. 伍六七带你学算法 动态规划 ——不同路径

    力扣 62. 不同路径 难度 中等 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格 ...

  9. 由动态规划计算编辑距离引发的思考

    简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...

最新文章

  1. golang中的panic
  2. mysql命令行查看端口占用_linux下常用命令查看端口占用
  3. java set第n位_Java学习路线:float在内存中的存储
  4. java jsonobject.parse_JSON.parseObject的几种用法
  5. c++ vs2015 播放音乐_Linux 中的十大开源视频播放器
  6. 像msn那样的message提示
  7. Oracle误删除后的找回方法
  8. Win7 可以下载python最高什么版本?
  9. Verilog 语言2选1数据选择器
  10. teechart mysql_TeeChart的X轴为时间,多个Y轴的显示
  11. 如何从硬盘安装Linux
  12. 功率和能量换算公式、如何换算,W和J如何转换,power和energy转换
  13. 狮子座与摩羯座 ---转载
  14. 神临的 Unity shader 学习之多Pass渲染 (九)
  15. [模拟] Jzoj P2499 东风谷早苗
  16. LZMA解压缩编码算法的使用
  17. python中print是什么意思中文-python里print是什么意思
  18. 综合布线施工的技术交底
  19. 数据仓库设计--- 如何设计一个星型模型(示列)
  20. C99/Cpp 使用printf 时format大全

热门文章

  1. c语言五个数比较大小
  2. ULN2003驱动继电器电路
  3. npm 查看源地址以及更换源地址的方法
  4. Fiori学习01-前期准备
  5. 从光学角度认识相机与镜头
  6. HPE DL388GEN9 /windows server 2012r2 重置管理员密码/忘记管理员密码
  7. 公式编辑器Axmath+公式识别器SimpleTex+Markdown编辑器Typora
  8. 【数据分析】业务分析中常见模型-波士顿矩阵、逻辑回归模型
  9. 给定一个m*n的格子或棋盘,问从左上角走到右下角的走法总数(每次只能向右或向下移动一个方格边长的距离。
  10. 微信中直接下载app的解决方法,如何解决微信中无法直接下载app的问题