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

https://www.luogu.org/problemnew/show/P1594#sub

f[i]表示第i辆车通过的最小时间;v[i][j]表示第i辆到第j辆的最慢速度;num是车重前缀和;

1.赋初值:f[i]=(double)l/sd[i]+f[i-1];v[i][i]=sd[i];

2.如果第j辆车到第i辆车可以同时通过: f[i]=min(f[i],f[j-1]+(double)l/v[j][i]);

此题洛谷上要开long long,f数组开double,也没给数据范围。

别忘了最后乘60,输出分钟。

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

P1594 护卫队-动态规划相关推荐

  1. 1066:护卫队 (动态规划)

    1066: [视频]动态规划入门(一维一边推4:护卫队) 时间限制: 1 Sec 内存限制: 128 MB 提交: 262 解决: 95 [提交][状态][讨论版] 题目描述 [问题描述] 护卫车队在 ...

  2. 洛谷 P1594 护卫队

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

  3. 【题解】 P1594 护卫队

    首先因为处理完前面的车队之后后面的车队不会影响前面的车队,所以无后效性可以用动态规划. 设 dp[i]dp[i]dp[i] 表示前 iii 个车的最小时间,转移时就枚举 jjj 把车队分成之前的和 j ...

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

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

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

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

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

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

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

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

  8. 洛谷1594 护卫队_区间dp_题解

    护卫队 出自洛谷题库 https://www.luogu.com.cn/problem/P1594 [问题描述] 不是具体题目 大概就是有n个车要过河,只有一个桥(理论上只能单向通行,其实不用管对面) ...

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

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

最新文章

  1. 目前流行的源程序版本管理软件和项目管理软件都有哪些, 各有什么优缺点?...
  2. Linux LVM硬盘管理及LVM扩容
  3. 如何通过 Impex 在 SAP Commerce Cloud 创建一个新的 Component
  4. php移动代码,移动专区周级收录如何提交 复制这段php代码即可
  5. python网络爬虫_一篇文章教会你利用Python网络爬虫获取穷游攻略
  6. 多语言网站开发 不完全技术分析收录
  7. python配置文件模块_Python解析配置文件模块:ConfigPhaser
  8. JAVA练习173-幂集
  9. KDJ指标公式的应用要则是什么KDJ指标公式的使用技巧是什么
  10. Ubuntu下载压缩文件
  11. 腾讯、华为角逐“云游戏”
  12. 【Linux】Linux下挂载新硬盘(图形化使用Ubuntu自带Disks)
  13. Final SwfPlayer下载后在安卓12上玩宇宙的刻度2
  14. 2023复旦大学计算机考研信息汇总
  15. Android学习记录(二十八)--Android apache httpclients的使用。
  16. IDEA打开多个窗口
  17. 谷歌•亚马逊•Facebook等创始人说创业该从小处着手
  18. Raydium被盗造成巨额损失,但Zebec Protocol以及$ZBC并未受影响
  19. 【C++基础】 switch case语句
  20. centos7重新安装polket

热门文章

  1. 2020算法秋招面经
  2. 基于MFC海康威视摄像头Demo(含抓图显示|不含云台)
  3. 开学季教师节PPT模板推荐
  4. mp3怎么在html上播放,网页上正在播放的声音如何录制成MP3
  5. 华中科技大学计算机学院c 实验,华中科技大学计算机学院C实验报告-实验一.doc...
  6. Openstack 实现技术分解 (3) 开发工具 — VIM dotfiles
  7. 计算理论——正则语言,上下文无关文法,图灵机,可判定性,可规约性
  8. 安装WinServer2008R2企业版和Win7旗舰版
  9. 武器装备自动测试(ATE)系统设计要点
  10. cocos2dx在Android下如何接入91SDK