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的更多相关文章
随机推荐
- 谷歌浏览器禁止window.close的问题
当一个窗口不是通过window.open或者window.showModalDialog打开的时候,调用JS的window.close() 谷歌浏览器会提示如下警告,并拒绝执行 Scripts may ...
- JAVA中定义常量的几种方式
1.最古老的 //未处理 public static final Integer PROCESS_STATUS_UNTREATED = 0; //已接收 public static final Int ...
- java RandomAccessFile类(随机访问文件)
该类可以实现对同一个文件的读写操作,与其他IO流不同的是可以指定读写指针的脚标(seek),有跳过指定个数字节(skipBytes)操作. 另外该类也可用于断点续传. 简单示例如下: import j ...
- Oracle常见的异常处理
总结了在操作数据库的时候常常遇见的Oracle异常以及处理方法. 代码 提示 备注 一般处理方法 ORA-01861 文字与格式字符串不匹配- ORA-00904 invalid column nam ...
- echo “新密码”|passwd --stdin 用户名
--stdin This option is used to indicate that passwd should read the new password from standard input ...
- Spring Boot 集成 GRPC
代码地址如下:http://www.demodashi.com/demo/14110.html 一.背景 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring ...
- 【转载】PL/SQL配置连接ORACLE
一.需安装ORACL客户端. 配置文件路径: E:\Oracle\product\10.1.0\Client_3\NETWORK\ADMIN\tnsnames.ora 内容如下: # TNSNAMES ...
- Java compiler level does not match解决方法(转)
本文转自:https://www.cnblogs.com/lauer0246/p/5740572.html#undefined 从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclips ...
- 【LeetCode】79. Word Search
Word Search Given a 2D board and a word, find if the word exists in the grid. The word can be constr ...
- Eclipse 去掉JavaScript Validator
http://www.cnblogs.com/wucg/archive/2012/08/06/2625458.html eclipse有些时候,javascript文件总是通不过eclipse的编译校 ...