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;
}


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

hdu3466Proud Merchants

链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:给定n个物品的信息,Pi,Qi,Vi,购买物品i需要至少Qi元,但实际只有付出Pi元,获得的...
  • Fsss_7
  • Fsss_7
  • 2016年05月04日 15:28
  • 523

hdu3466-Proud Merchants

linkProblem DescriptionRecently, iSea went to an ancient country. For such a long time, it was the m...
  • qq_21120027
  • qq_21120027
  • 2015年12月02日 16:31
  • 247

HDU 3466 Proud Merchants DP 分享排序方式的证明。。

此题我纠结了一下午,最终。。。。。。还是没想出来。然后看了神牛的题解 说是 按  q-p 排序。。。 于是我就去想为什么按此排序。。 在雨中漫步了一会,今晚的济南的正好下雨,但还是习惯性走出实验室,...
  • OceanLight
  • OceanLight
  • 2012年08月14日 22:29
  • 4601

HDU-3466-Proud Merchants

以最低价格要求与实际价格的差值作为关键字进行排序,然后当作01背包处理即可 代码: #include #include #include #include using namespace std;...
  • z309241990
  • z309241990
  • 2013年07月06日 21:04
  • 585

HDU 3466 Proud Merchants

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others...
  • yao1373446012
  • yao1373446012
  • 2016年03月22日 13:41
  • 154

Proud Merchants HDU - 3466

点击打开链接 主要就是由Pi+QjQj-Pj 参考博客点击打开链接 #include #include using namespace std; struct node { ...
  • sunyutian1998
  • sunyutian1998
  • 2017年09月04日 17:26
  • 64

hdu 3466 Proud Merchants

Problem Description   Recently, iSea went to an ancient country. For such a long time, it was the m...
  • u010650359
  • u010650359
  • 2013年08月22日 16:07
  • 691

HDU 3466 Proud Merchants

Description Recently, iSea went to an ancient country. For such a long time, it was the most wealth...
  • u010900851
  • u010900851
  • 2013年08月18日 13:47
  • 464

HDU - 3466 Proud Merchants

Proud Merchants Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %...
  • qq_18738333
  • qq_18738333
  • 2015年03月29日 03:03
  • 401

HDU 3466 Proud Merchants

Proud Merchants Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others...
  • yeguxin
  • yeguxin
  • 2014年08月25日 20:21
  • 265
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 3466 Proud Merchants
举报原因:
原因补充:

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