ZOJ 2972 Hurdles of 110m

简单DP。dp[i][j]表示完成第i段,有j体力的情况下,获得的最小时间,

然后就可以递推:

//高速跑
if(j-s[i].f1>=0)
dp[i][j-s[i].f1]=min(dp[i][j-s[i].f1],dp[i-1][j]+s[i].t1);

//中速跑
dp[i][j]=min(dp[i][j],dp[i-1][j]+s[i].t2);

//低速跑
dp[i][min(m,j+s[i].f2)]=min(dp[i][min(m,j+s[i].f2)],dp[i-1][j]+s[i].t3);

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;

int T;
const int maxn=100+20;
int dp[maxn][maxn];
int n,m;
struct X
{
    int t1,t2,t3;
    int f1,f2;
}s[maxn];

int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            scanf("%d%d%d%d%d",&s[i].t1,&s[i].t2,&s[i].t3,&s[i].f1,&s[i].f2);
        for(int i=0;i<=n;i++)
            for(int j=0;j<=m;j++)
                dp[i][j]=0x7fffffff;

        //中速过
        dp[1][m]=min(dp[1][m],s[1].t2);
        //高速过
        if(m-s[1].f1>=0) dp[1][m-s[1].f1]=min(dp[1][m-s[1].f1],s[1].t1);
        //低速过
        dp[1][m]=min(dp[1][m],s[1].t3);

        for(int i=2;i<=n;i++)
        {
            for(int j=0;j<=m;j++)
            {
                if(dp[i-1][j]!=0x7fffffff)
                {
                    //高速跑
                    if(j-s[i].f1>=0)
                        dp[i][j-s[i].f1]=min(dp[i][j-s[i].f1],dp[i-1][j]+s[i].t1);

                    //中速跑
                    dp[i][j]=min(dp[i][j],dp[i-1][j]+s[i].t2);

                    //低速跑
                    dp[i][min(m,j+s[i].f2)]=min(dp[i][min(m,j+s[i].f2)],dp[i-1][j]+s[i].t3);
                }
            }
        }
        int ans=0x7fffffff;
        for(int i=0;i<=m;i++) ans=min(ans,dp[n][i]);
        printf("%d\n",ans);
    }

    return 0;
}
时间: 2024-10-15 02:29:16

ZOJ 2972 Hurdles of 110m的相关文章

【TOJ 1545】Hurdles of 110m(背包题)

描述 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. I

Hurdles of 110m 【DP 背包】

一共有N段过程,每段过程里可以选择 快速跑. 匀速跑 和 慢速跑 对于快速跑会消耗F1 的能量, 慢速跑会集聚F2的能量 选手一开始有M的能量,即能量上限 求通过全程的最短时间 定义DP[i][j] 为跨越第 i 个栏,剩余 j 点能量 动态转移方程 dp[i][j] = min(dp[i][j], dp[i-1][j-F1]+T1) (Fast Mode) dp[i][j] = min(dp[i][j], dp[i-1][j]+T2) (Normal Mode) dp[i][j] = min(

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

【转】对于杭电OJ题目的分类

[好像博客园不能直接转载,所以我复制过来了..] 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDI

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

概率dp ZOJ 3640

Help Me Escape Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3640 Appoint description:  System Crawler  (2014-10-22) Description Background     If thou doest well, shalt thou not be accepted? an

zoj 2156 - Charlie&#39;s Change

题目:钱数拼凑,面值为1,5,10,25,求组成n面值的最大钱币数. 分析:dp,01背包.需要进行二进制拆分,否则TLE,利用数组记录每种硬币的个数,方便更新. 写了一个 多重背包的 O(NV)反而没有拆分快.囧,最后利用了状态压缩优化 90ms: 把 1 cents 的最后处理,其他都除以5,状态就少了5倍了. 说明:貌似我的比大黄的快.(2011-09-26 12:49). #include <stdio.h> #include <stdlib.h> #include <

ZOJ 1718 POJ 2031 Building a Space Station 修建空间站 最小生成树 Kruskal算法

题目链接:ZOJ 1718 POJ 2031 Building a Space Station 修建空间站 Building a Space Station Time Limit: 2 Seconds      Memory Limit: 65536 KB You are a member of the space station engineering team, and are assigned a task in the construction process of the statio