zoj 2972 Hurdles of 110m(dp,背包)

原创 2012年03月29日 20:10:16

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2972

题目是给出t1(最快需要的时间),t2(normal),t3(slowest),以及t1所需要的能量,t3所赢得的能量,、t2不消耗也不赢得。

求最小消耗时间。

int dp[x][y];//跨越x个栏剩余y体力的需要的最小时间。

 

#include<stdio.h>//zoj 2972 dp zisu123
#include<string.h>
#include<stdlib.h>
#define INF 1<<25
typedef struct lx{
	int t1,t2,t3;
	int f1,f2;
}lx;
lx liu[120];
inline int min(int x,int y)
{
	return x<y?x:y;
}
int main()
{
	int T,N,M;
	int dp[120][120];//跨越x个栏剩余y体力的需要的最小时间。
	int i,j;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d%d",&N,&M);
		for(i=0;i<=N;i++)
			for(j=0;j<=M;j++)
				dp[i][j]=INF;
		dp[0][M]=0;
		for(i=0;i<N;i++)
			scanf("%d%d%d%d%d",&liu[i].t1,&liu[i].t2,&liu[i].t3,&liu[i].f1,&liu[i].f2);
		for(i=0;i<N;i++)
			for(j=0;j<=M;j++)
			{
				if(j>=liu[i].f1)// fastest
				{
					dp[i+1][j-liu[i].f1]=min(dp[i+1][j-liu[i].f1],dp[i][j]+liu[i].t1);
				}
				if(j+liu[i].f2>M)//slowest
				{
					dp[i+1][M]=min(dp[i+1][M],dp[i][j]+liu[i].t3);
				}
				else
				{
					dp[i+1][j+liu[i].f2]=min(dp[i+1][j+liu[i].f2],dp[i][j]+liu[i].t3);
				}
				dp[i+1][j]=min(dp[i+1][j],dp[i][j]+liu[i].t2);//normal
			}
		int minTime=INF;
		for(i=0;i<=M;i++)
		{
			if(minTime>dp[N][i])
				minTime=dp[N][i];
		}
		printf("%d\n",minTime);

	}
//	system("pause");
	return 0;
}

相关文章推荐

ZOJ 2972-Hurdles of 110m(背包dp)

H - Hurdles of 110m Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu S...

ZOJ-2972-Hurdles of 110m【5th浙江省赛】【dp】

ZOJ-2972-Hurdles of 110m

ZOJ 2972 Hurdles of 110m

题目链接:https://www.nitacm.com/problem_show.php?pid=17880题解:题目大意: 给你n段的跑步,你的能量最多为m(同时也代表初始的能量),然后给你n行,...

ZOJ Problem Set - 2972 Hurdles of 110m

今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~ (说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这...
  • lxyg06
  • lxyg06
  • 2012年04月12日 19:46
  • 1149

ZOJ 2972 Hurdles of 110m

In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperity o...

BNU16491:Hurdles of 110m(DP)

In the year 2008, the 29th Olympic Games will be held in Beijing. This will signify the prosperity o...

zoj 3662 dp (递推k个数 组成的和为n,最小公倍数为m的所有可能)

#include #include #define MOD 1e9+7 int dp[2][1010][1002]; int lo[1100][1100],L[110]; int gcd(int a,...
  • sky_zdk
  • sky_zdk
  • 2017年04月22日 15:53
  • 177

ZOJ 3662 Math Magic(构造K个和为N且最小公倍数为M的正整数的方案数/dp)

题目链接: ZOJ 3662 Math Magic 题意: 求构造K个和为N且最小公倍数为M的正整数的方案数。 1...
  • Ramay7
  • Ramay7
  • 2016年04月15日 21:45
  • 157

[ZOJ 3682] E - Cup 3 (背包DP计数 + 滚动数组)

ZOJ - 3682 有S1S_1个球迷支持巴萨,S2S_2个球迷支持皇马 球场有NN个方阵,每个可以坐 kik_i个球迷 安排球迷使得一个方阵要么全是支持巴萨的 要么全是支持皇...

zoj 3077 Move to Baggage Office(离散化处理+背包dp)

【题目大意】:一个人有能量s,现在有n件物品,每件物品有价值v,现在把这件物品要消耗能量x,搬完这件物品能回复能量y。问最多可以搬动多少物品。 【解题思路】:背包是明显的....但是也是明显...
  • new_wu
  • new_wu
  • 2012年04月01日 01:55
  • 469
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:zoj 2972 Hurdles of 110m(dp,背包)
举报原因:
原因补充:

(最多只允许输入30个字)