描述

In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperity of China and Beijing Olympics is to be a festival for people all over the world as well.

Liu Xiang is one of the famous Olympic athletes in China. In 2002 Liu broke Renaldo Nehemiah's 24-year-old world junior record for the 110m hurdles. At the 2004 Athens Olympics Games, he won the gold medal in the end. Although he was not considered as a favorite for the gold, in the final, Liu's technique was nearly perfect as he barely touched the sixth hurdle and cleared all of the others cleanly. He powered to a victory of almost three meters. In doing so, he tied the 11-year-old world record of 12.91 seconds. Liu was the first Chinese man to win an Olympic gold medal in track and field. Only 21 years old at the time of his victory, Liu vowed to defend his title when the Olympics come to Beijing in 2008.

In the 110m hurdle competition, the track was divided into N parts by the hurdle. In each part, the player has to run in the same speed; otherwise he may hit the hurdle. In fact, there are 3 modes to choose in each part for an athlete -- Fast Mode, Normal Mode and Slow Mode. Fast Mode costs the player T1 time to pass the part. However, he cannot always use this mode in all parts, because he needs to consume F1 force at the same time. If he doesn't have enough force, he cannot run in the part at the Fast Mode. Normal Mode costs the player T2 time for the part. And at this mode, the player's force will remain unchanged. Slow Mode costs the player T3 time to pass the part. Meanwhile, the player will earn F2 force as compensation. The maximal force of a player is M. If he already has M force, he cannot earn any more force. At the beginning of the competition, the player has the maximal force.

The input of this problem is detail data for Liu Xiang. Your task is to help him to choose proper mode in each part to finish the competition in the shortest time.

输入

Standard input will contain multiple test cases. The first line of the input is a single integer T (1 <= T <= 50) which is the number of test cases. And it will be followed by T consecutive test cases.

Each test case begins with two positive integers N and M. And following N lines denote the data for the N parts. Each line has five positive integers T1 T2 T3 F1 F2. All the integers in this problem are less than or equal to 110.

输出

Results should be directed to standard output. The output of each test case should be a single integer in one line, which is the shortest time that Liu Xiang can finish the competition.

样例输入

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

样例输出

1
6

提示

For the second sample test case, Liu Xiang should run with the sequence of Normal Mode, Fast Mode, Slow Mode and Fast Mode.

题意

有N个障碍需要跨过去,跨过障碍有3种方式:快跑T1秒,消耗F1能量;普通跑T2秒,消耗0;慢跑T3秒,获得F2能量,求跨过N个障碍需要最短的时间

题解

算是一道简单的01背包问题,Dp[i][j],i为第i个障碍,j为剩余能量

  快跑:Dp[i][j-f1[i]]=min(Dp[i][j],Dp[i-1][j-f1[i]]+t1[i]);

  普通:Dp[i][j]=min(Dp[i][j],Dp[i-1][j]+t2[i]);

  慢跑:如果j+f2[i]<=m时,

      Dp[i][j+f2[i]]=min(Dp[i][j],Dp[i-1][j+f2[i]]+t3[i]);

     如果j+f2[i]>m时,这里获得能量不能超过m,多出来的能量浪费(艰难的错了WA了几次,英语渣了)

      Dp[i][m]=min(Dp[i][m],Dp[i-1][j]+t3[i]);

代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
#define INF 0x3f3f3f3f
int main()
{
int t,n,m;
scanf("%d",&t);
int Dp[][];
int t1[],t2[],t3[],f1[],f2[];
while(t--)
{
memset(Dp,INF,sizeof(Dp));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%d%d%d%d%d",&t1[i],&t2[i],&t3[i],&f1[i],&f2[i]);
for(int j=;j<=m;j++)
Dp[][j]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
//normal
Dp[i][j]=min(Dp[i][j],Dp[i-][j]+t2[i]);
//fast
if(j-f1[i]>=)
Dp[i][j-f1[i]]=min(Dp[i][j-f1[i]],Dp[i-][j]+t1[i]);
//slow
if(j+f2[i]<=m)//不过载
Dp[i][j+f2[i]]=min(Dp[i][j+f2[i]],Dp[i-][j]+t3[i]);
else//能量过载
Dp[i][m]=min(Dp[i][m],Dp[i-][j]+t3[i]);
}
}
int minn=INF;
for(int j=;j<=m;j++)
minn=min(minn,Dp[n][j]);
printf("%d\n",minn);
}
return ;
}

TZOJ 1545 Hurdles of 110m(01背包dp)的更多相关文章

  1. noj [1479] How many (01背包||DP||DFS)

    http://ac.nbutoj.com/Problem/view.xhtml?id=1479 [1479] How many 时间限制: 1000 ms 内存限制: 65535 K 问题描述 The ...

  2. PAT L3-001 凑零钱(01背包dp记录路径)

    韩梅梅喜欢满宇宙到处逛街.现在她逛到了一家火星店里,发现这家店有个特别的规矩:你可以用任何星球的硬币付钱,但是绝不找零,当然也不能欠债.韩梅梅手边有104枚来自各个星球的硬币,需要请你帮她盘算一下,是 ...

  3. HDU 1203 I NEED A OFFER!(01 背包DP)

    点我看题目 题意 : 中文题不详述. 思路 :类似于01背包的DP,就是放与不放的问题,不过这个要求概率,至少得到一份offer的反面就是一份也得不到,所以先求一份也得不到的概率,用1减掉就可以得到所 ...

  4. (01背包 dp)P1049 装箱问题 洛谷

    题目描述 有一个箱子容量为VV(正整数,0≤V≤20000),同时有nn个物品(0<n≤30,每个物品有一个体积(正整数). 要求nn个物品中,任取若干个装入箱内,使箱子的剩余空间为最小. 输入 ...

  5. 0-1背包dp|波动数列|2014年蓝桥杯A组10-fishers

    标题:波动数列 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a ...

  6. HDU 2602 Bone Collector (01背包DP)

    题意:给定一个体积,和一些物品的价值和体积,问你最大的价值. 析:最基础的01背包,dp[i] 表示体积 i 时最大价值. 代码如下: #pragma comment(linker, "/S ...

  7. hiho #1038 : 01背包 (dp)

    #1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励 ...

  8. Bookshelf 2(poj3628,01背包,dp递推)

    题目链接:Bookshelf 2(点击进入) 题目解读: 给n头牛,给出每个牛的高度h[i],给出一个书架的高度b(所有牛的高度相加>书架高度b),现在把一些牛叠起来(每头牛只能用一次,但不同的 ...

  9. 01背包-dp

    一 问题分析 二 代码实现 package Dp_0_1_bag; import java.io.BufferedWriter; import java.io.FileWriter; import j ...

随机推荐

  1. PyCharm里的五个地方utf-8有什么关系和联系?

    IDE Encoding:ide 的编码Project Encoding:项目的编码File or Director Encoding:各个文件或者目录的编码Property File Encodin ...

  2. 关于博主noble_

    大家好啊,我是博主noble_,大家叫我noble就行了.我身处上海某初高中连体的市重点,校内OI比较弱. 个人常用OJ是洛谷,BZOJ,POJ,HDU,UVA.名字都叫noble_. 目前noble ...

  3. 浅析PHP7新功能及语法变化总结

    标量类型声明 有两种模式: 强制 (默认) 和 严格模式. 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 ...

  4. [Python] 分段线性插值

    利用线性函数做插值 每一段的线性函数: #Program 0.6 Linear Interploation import numpy as np import matplotlib.pyplot as ...

  5. zk-systemd

    [Unit] Description=auto run zk server After=network.target [Service] Type=simple Environment=ZHOME=/ ...

  6. UVA-575-水题-模拟

    题意: 按照这个公式模拟 10120skew = 1×(25 −1)+0×(24 −1)+1×(23 −1)+2×(22 −1)+0×(21 −1) = 31+0+7+6+0 = 44. #inclu ...

  7. 本地yum源快速创建

    1.建立挂载目录mkdir /rui 2.挂载iso到新建的/rui目录

  8. linux系统安装pycharm环境

    1.安装Pycharm环境参考网站: https://www.linuxidc.com/Linux/2018-04/152003.htm 注册:http://idea.lanyus.com/ wind ...

  9. jpa-入门.缓存配置ehcache.xml

    <ehcache> <!-- Sets the path to the directory where cache .data files are created. If the p ...

  10. angular 获取当前值