vijos[1355]车队过桥问题
描述
现有N辆车要按顺序通过一个单向的小桥,由于小桥太窄,不能有两辆车并排通过。另外,由于小桥建造的时间已经很久,只能承受有限的重量,记为Max(吨)。管理员将N辆车按初始的顺序分组,每次让一个组过桥,并且只有在一个组的车辆全部过桥后,下一组车辆才能上桥。每辆车的重量和最大速度是已知的,而每组车的过桥时间由该组中速度最慢的那辆车决定。请你帮管理员编一个程序,将这N辆车分组,使得全部车辆通过小桥的时间最短。
格式
输入格式
文件的第一行有3个数字,分别为Max(吨),Len(桥的长度,单位km),N(3个数之间用一个或多个空格隔开)。接下来又N行,每行两个数,第i行的两个数分别表示第i辆车的重量w(吨)和最大速度v(km/h)。
max,len,w,v不超过32位有符号整数类型的最大值,且为整数
n<1000
输出格式
文件只有一行,即全部车辆通过小桥的最短时间(minute),精确到小数点后一位。
样例1
样例输入1
100 5 10
40 25
50 20
50 20
70 10
12 50
9 70
49 30
38 25
27 50
19 70
样例输出1
75.0
限制
1 second
题解
一道需要注意细节的动态规划题
思路是比较清晰的,细节是要注意long long和double间的转换问题先预处理数据,用t[i][j]对应车区间[i,j]的最大过桥时间,w[i]表示[1,i]车子重量的前缀和
对于每辆车的最小过桥时间是没有后效性的,因此设f[i]对应第i辆车过桥的最小时间
状态转移方程为
f[i]=min{f[j-1]+v[j][i]} (j∈[1,i])
#include<cstdio>
#include<iostream>
using namespace std;
const int N=;
int n;
double t[N][N],f[N];
unsigned long long w[N],W,L;
int main(){
ios::sync_with_stdio(false);
cin>>W>>L>>n;
for(int i=;i<=n;i++)
cin>>w[i]>>t[i][i],
t[i][i]=L/t[i][i],
w[i]+=w[i-];
for(int i=;i<n;i++)
for(int j=i+;j<=n;j++)
t[i][j]=max(t[j][j],t[i][j-]);
f[]=t[][];
for(int i=;i<=n;i++){
f[i]=1e6;
for(int j=i;j>=;j--){
if(w[i]-w[j-]>W)
break;
f[i]=min(f[i],f[j-]+t[j][i]);
}
}
printf("%.1lf\n",f[n]*60.000);
return ;
}
vijos[1355]车队过桥问题的更多相关文章
- 线性dp
线性dp应该是dp中比较简单的一类,不过也有难的.(矩乘优化递推请出门右转) 线性dp一般是用前面的状态去推后面的,也有用后面往前面推的,这时候把循环顺序倒一倒就行了.如果有的题又要从前往后推又要从后 ...
- 【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募
http://www.lydsy.com/JudgeOnline/problem.php?id=1061 https://vijos.org/p/1825 直接上姜爷论文... #include< ...
- [BZOJ2072][POI2004] MOS过桥
Description 一个夜晚一些旅行者想要过桥. 他们只有一个火把. 火把的亮光最多允许两个旅行者同时过桥. 没有火把或者多于2个人则不能过桥.每个旅行者过桥都需要特定的时间, 两个旅行者同时过桥 ...
- vijos P1915 解方程 加强版
背景 B酱为NOIP 2014出了一道有趣的题目, 可是在NOIP现场, B酱发现数据规模给错了, 他很伤心, 哭得很可怜..... 为了安慰可怜的B酱, vijos刻意挂出来了真实的题目! 描述 已 ...
- vijos P1780 【NOIP2012】 开车旅行
描述 小\(A\)和小\(B\)决定利用假期外出旅行,他们将想去的城市从\(1\)到\(N\)编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市\(i\)的海拔高度为 ...
- 【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
http://www.lydsy.com/JudgeOnline/problem.php?id=2541 https://vijos.org/p/1366 loli秘制大爆搜_(:з」∠)_坑了好久啊 ...
- 【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
http://www.lydsy.com/JudgeOnline/problem.php?id=1065 https://vijos.org/p/1826 好难的题啊TWT ∈我这辈子也想不出来系列~ ...
- [题解]vijos & codevs 能量项链
a { text-decoration: none; font-family: "comic sans ms" } .math { color: gray; font-family ...
- [题解]vijos 运输计划
Description 公元 2044 年,人类进入了宇宙纪元.L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球.小 P 掌管一家 ...
随机推荐
- 系统补丁对sharepoint很重要
系统补丁对sharepoint很重要,会提高sharepoint运行效率,加载速度明显变快.
- Android添加快捷方式(Shortcut)到手机桌面
Android添加快捷方式(Short)到手机桌面 权限 要在手机桌面上添加快捷方式,首先需要在manifest中添加权限. <!-- 添加快捷方式 --> <uses-permis ...
- 《The Linux Command Line》 读书笔记01 基本命令介绍
<The Linux Command Line> 读书笔记01 基本命令介绍 1. What is the Shell? The Shell is a program that takes ...
- Android Studio教程--Android Studio 2.1安装与配置
1.下载Android Studio 去官网https://developer.android.com/studio/index.html下载最新版的Android Studio2.1(自备梯子) 或 ...
- 振奋人心啊!!!!下一代.NET——ASP.NET vNext
这两天看到的.NET的新闻都好振奋人心啊!微软北美技术大会带来了好多好消息! 看到一篇博客园的文章,感觉太棒了.摘录下来.原文链接:http://news.cnblogs.com/n/208133/ ...
- MicroStation VBA基础
实习笔记1 2016年8月1日 14:12 Option Explicit 缺省情况下,如果使用一个没有声明的变量,它将继承“Variant”类型.在模块.窗体和类的通用声明区使用“OptionExp ...
- VC对ScrollView的调整
VC对ScrollView的调整 automaticallyAdjustsScrollViewInsets automaticallyAdjustsScrollViewInsets是ViewContr ...
- Linux 虚拟机网络适配器从E1000改为VMXNET3
我们知道VMware的网络适配器类型有多种,例如E1000.VMXNET.VMXNET 2 (Enhanced).VMXNET3等,就性能而言,一般VMXNET3要优于E1000,下面介绍如果将Lin ...
- javascript-外观模式
外观模式笔记 1. 为一组复杂的子系统接口提供一个更高级的统一接口, 通过这个接口使得对子系统接口的访问更容易: 2. 简化底层接口的复杂性,解决浏览器兼容性问题. 3.也会用于对底层结构兼容性做 ...
- CSS之旅——第一站 为什么要用CSS
不知道有多少码农和我一样,css一直是一个软肋,软到全身酥麻...既然软肋来了,只能是要想办法解决,所以就找本CSS权威指南看一看,都说 CSS权威指南这本书比较过时,但是内容还是比较充实的,而且内容 ...