bnuoj16491
http://www.bnuoj.com/bnuoj/problem_show.php?pid=16491
题意:有t组测试数据,每组测试数据第一行为n,m,接下来有n种跑法,m为最大的能力,每一种跑法占一行,有a,b,c,d,e。a表示快速跑完这段路途需要的时间,b表示平速跑完这段路途需要的时间,c表示慢速跑完需要花得时间,d表示快速跑完需要消耗的能量,e表示慢速跑完需要小号的能量,平速跑需要消耗的能量为0,问跑完n段路途所需要花得最少时间。
Sample Input
2
1 10
1 2 3 10 10
4 10
1 2 3 10 10
1 10 10 10 10
1 1 2 10 10
1 10 10 10 10
Sample Output
1
6
思路:对于这类多种状态的dp,一般是需要将它的某一个值放入数组,然后将其所要求的值求出来。
这道题,需要开二维,dp[i][j]表示,在第i段路途还有j点能量的时候所花的最少时间.....动态转移很好写,以前做过的题目中也有这类型的,这里不再重复‘
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define M 100000005
int dp[150][150];
int s[150][7];
int main()
{
int text;
scanf("%d",&text);
while(text--)
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
for(int j=0;j<5;j++)
scanf("%d",&s[i][j]);
} for(int i=0;i<=130;i++)
for(int j=0;j<=130;j++)
dp[i][j]=M;
for(int i=0;i<=130;i++)
dp[0][i]=0;
for(int i=1;i<=n;i++)
{
for(int j=m;j>=0;j--)
{
if(j>=s[i][3])
{
int ans=j-s[i][3];
if(dp[i][ans]>dp[i-1][j]+s[i][0])
dp[i][ans]=dp[i-1][j]+s[i][0];
}
if(dp[i][j]>dp[i-1][j]+s[i][1])
dp[i][j]=dp[i-1][j]+s[i][1];
int tmp=j+s[i][4];
if(tmp>m)
tmp=m;
if(dp[i][tmp]>dp[i-1][j]+s[i][2])
dp[i][tmp]=dp[i-1][j]+s[i][2];
}
}
int minx=M;
for(int i=0;i<=m;i++)
if(dp[n][i]<minx)
minx=dp[n][i];
printf("%d\n",minx);
}
return 0;
}
bnuoj16491的更多相关文章
随机推荐
- 数据库选型之亿级数据量并发访问(MySQL集群)
刘 勇 Email:lyssym@sina.com 简介 针对实际应用中并发访问MySQL的场景,本文采用多线程对MySQL进行并发读取访问,其中以返回用户所需的数据并显示在终端为测试结束节点,即将 ...
- smack 4.1.2+openfire 3.10.2i
openfire 和以往版本号配置没有多大差别就不具体介绍了,网上搜会有一大堆的图解 以下主要说一下smack 4.1.2 的开发使用,在网上看了好多文章包含stackoverflow的都没有4.1以 ...
- 架构-LAMP特级学习(网站大访问量解决方案)
网站运营要面对的四个问题总结: 1.大访问量(主用负载均衡技术) 2.大存储量 3.访问速度 4.服务器监控 一.大访问量解决方案 超级计算机 = 负载均衡 + 集群 0.反向代理(Nginx等实现) ...
- java.lang.UnsupportedClassVersionError: org/hibernate/SessionFactory : Unsupported major.minor version 52.0
问题: 在学习hibernate的过程中,涉及导入jar包的问题,写该文的时候是从官网下载的最新的hibernate的jar包hibernate-release-5.2.10.Final .在测试时, ...
- HDUOJ---1754 I Hate It (线段树之单点更新查区间最大值)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- 【LeetCode】48. Rotate Image (2 solutions)
Rotate Image You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees ...
- Java Comparator和Comparabler的区别
一. Comparable public class Person implements Comparable<Person>{ public int Age; public String ...
- RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer) [转]
什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩 ...
- jseclipse 是eclipse插件,让你编写js代码感觉更爽
一直以来都没有客意的去找一下eclipse下面的javascript开发插件,今天在网上无意发现了一个,回去试了一下,感觉不错.写JS代码根写PHP代码差不多感觉挺爽的.JSEclipse是个Ecli ...
- js 对象操作 对象原型操作 把一个对象A赋值给另一个对象B 并且对象B 修改 不会影响 A对象
我最近在做一个vue + element-UI + vue-resource + vuex项目的时候,遇到了一个对象的问题. 当我们在项目需要 复制一个对象到另一个对象并且 被复制的对象不能受复制后 ...