HDU 3466 Proud Merchants

原创 2016年08月30日 17:40:08

Description

Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and powerful kingdom in the world. As a result, the people in this country are still very proud even if their nation hasn’t been so wealthy any more. 
The merchants were the most typical, each of them only sold exactly one item, the price was Pi, but they would refuse to make a trade with you if your money were less than Qi, and iSea evaluated every item a value Vi. 
If he had M units of money, what’s the maximum value iSea could get? 

Input

There are several test cases in the input. 

Each test case begin with two integers N, M (1 ≤ N ≤ 500, 1 ≤ M ≤ 5000), indicating the items’ number and the initial money. 
Then N lines follow, each line contains three numbers Pi, Qi and Vi (1 ≤ Pi ≤ Qi ≤ 100, 1 ≤ Vi ≤ 1000), their meaning is in the description. 

The input terminates by end of file marker. 

Output

For each test case, output one integer, indicating maximum value iSea could get. 

Sample Input

2 10
10 15 10
5 10 5
3 10
5 10 5
3 5 6
2 7 3

Sample Output

5

11

背包问题,多了一个限制,排序即可。

一开始考虑按照Qi从小到大排序,wa了,后来改为Qi-Pi就ok了

因为根据Qi-Pi排序,可以保证从小到大都是之前已经算过的。

#include<set>
#include<map>
#include<ctime>
#include<cmath>
#include<stack>
#include<queue>
#include<bitset>
#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<functional>
#define rep(i,j,k) for (int i = j; i <= k; i++)
#define per(i,j,k) for (int i = j; i >= k; i--)
#define loop(i,j,k) for (int i = j;i != -1; i = k[i])
#define lson x << 1, l, mid
#define rson x << 1 | 1, mid + 1, r
#define fi first
#define se second
#define mp(i,j) make_pair(i,j)
#define pii pair<string,string>
using namespace std;
typedef long long LL;
const int low(int x) { return x&-x; }
const double eps = 1e-8;
const int INF = 0x7FFFFFFF;
const int mod = 1e9 + 7;
const int N = 1e5 + 10;
const int read()
{
	char ch = getchar();
	while (ch<'0' || ch>'9') ch = getchar();
	int x = ch - '0';
	while ((ch = getchar()) >= '0'&&ch <= '9') x = x * 10 + ch - '0';
	return x;
}
int T, n, m, f[N];

struct point
{
	int x, y, z;
	void read() { scanf("%d%d%d", &x, &y, &z); }
	bool operator<(const point&a)const
	{
		return y - x < a.y - a.x;
	}
}a[N];

int main()
{
	//T = read();
	while (scanf("%d%d", &n, &m) != EOF)
	{
		rep(i, 1, n) a[i].read();
		sort(a + 1, a + n + 1);
		rep(i, 0, m) f[i] = 0;
		rep(i, 1, n) per(j, m, a[i].y) 
			f[j] = max(f[j], f[j - a[i].x] + a[i].z);
		printf("%d\n", f[m]);
	} 
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

hdu 3466 Proud Merchants

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题目的大意是:有n件物品,每个物品有个费用p,但要得到这件物品,你至少拥有的钱为q,每个物品也...

hdu 3466 Proud Merchants

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

HDU - 3466 Proud Merchants

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)...

hdu 3466 Proud Merchants(DP)

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others...

hdu 3466 Proud Merchants(贪心+DP)

Proud MerchantsProblem Description Recently, iSea went to an ancient country. For such a long time,...

hdu 3466 Proud Merchants(01 背包)

Proud Merchants Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u ...

hdu 3466 Proud Merchants(01背包)

题意: 给出             商品个数,拥有的金钱; 出售价格,最低金钱,实际价值; 求出能够获得的最大价值。 注意: 1)对Qi-Pi排序(差值) java代码: impor...

hdoj 3466 Proud Merchants

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others...

HDU 3466 - Proud Merchants(01背包)

Description Recently, iSea went to an ancient country. For such a long time, it was the most weal...

[01背包]HDU 3466 Proud Merchants

传送门:Proud Merchants Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 13...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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