hdu3466 Proud Merchants(01背包)
https://vjudge.net/problem/HDU-3466
一开始想到了是个排序后的背包,但是排序的策略一直没对。
两个物品1和2,当p1+q2>p2+q1 => q1-p1<q2-p2时选1.
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#define lson l, m, rt<<1
#define rson m+1, r, rt<<1|1
#define IO ios::sync_with_stdio(false);cin.tie(0);
#define INF 1e9
typedef long long ll;
using namespace std;
typedef struct{
int p, q, v;
int x;
}Node;
Node node[];
int m, n, dp[];
bool cmp(const Node a, const Node b)
{
return a.x<b.x;
}
int main()
{
IO;
while(cin >> n >> m){
memset(dp, , sizeof(dp));
for(int i = ; i < n; i++){
cin >> node[i].p >> node[i].q >> node[i].v;
node[i].x = node[i].q-node[i].p;//p1+q2>p2+q1 => q1-p1<q2-p2
}
sort(node, node+n, cmp);
for(int i = ; i < n; i++){
for(int j = m; j >= node[i].p; j--){
if(j >= node[i].q)
dp[j] = max(dp[j], dp[j-node[i].p]+node[i].v);
}
}
cout << dp[m] << endl;
}
return ;
}
hdu3466 Proud Merchants(01背包)的更多相关文章
- Proud Merchants(01背包)
		Proud Merchants Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) To ... 
- hdu 3466 Proud Merchants     01背包变形
		Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ... 
- HDU 3466 Proud Merchants(01背包)
		题目链接: 传送门 Proud Merchants Time Limit: 1000MS Memory Limit: 65536K Description Recently, iSea wen ... 
- HDU--3466 Proud Merchants (01背包)
		题目http://acm.hdu.edu.cn/showproblem.php?pid=3466 分析:这个题目增加了变量q 因此就不能简单是使用01背包了. 网上看到一个证明: 因为如果一个物品是5 ... 
- HDU3466 Proud Merchants[背包DP 条件限制]
		Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ... 
- HDU3466 Proud Merchants [背包]
		题目传送门 Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/O ... 
- [hdu3466]Proud Merchants
		题目描述 Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and po ... 
- HDU 3466 Proud Merchants(01背包问题)
		题目链接: 传送门 Proud Merchants Time Limit: 1000MS Memory Limit: 65536K Description Recently, iSea wen ... 
- HDU 3466 Proud Merchants 排序 背包
		题意:物品有三个属性,价格p,解锁钱数下线q(手中余额>=q才有机会购买该商品),价值v.钱数为m,问购买到物品价值和最大. 思路:首先是个01背包问题,但购买物品受限所以应先排序.考虑相邻两个 ... 
随机推荐
- python排列组合之itertools模块
			1. 参考 几个有用的python函数 (笛卡尔积, 排列, 组合) 9.7. itertools — Functions creating iterators for efficient loopi ... 
- 【前端基础系列】slice方法将类数组转换数组实现原理
			问题描述 在日常编码中会遇到将类数组对象转换为数组的问题,其中常用到的一种方式使用Array.prototype.slice()方法. 类数组对象 所谓的类数组对象,JavaScript对它们定义为: ... 
- MySQL主从数据同步延时分析
			一.MySQL数据库主从同步延迟 要了解MySQL数据库主从同步延迟原理,我们 ... 
- zprofiler三板斧解决cpu占用率过高问题(转载)
			zprofiler三板斧解决cpu占用率过高问题 九居 JVM性能与调试平台 zprofiler 上周五碰到了一个线上机器cpu占用率过高的问题.问题本身比较简单,但是定位过程中动用了多个zp ... 
- Python学习(二十) —— 前端之CSS
			转载自http://www.cnblogs.com/liwenzhou/p/7999532.html 一.CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTM ... 
- 洛谷3825 [NOI2017]游戏 2-sat
			原文链接http://www.cnblogs.com/zhouzhendong/p/8146041.html 题目传送门 - 洛谷3825 题解 我们考虑到地图中x的个数很少,最多只有8个. 所以我们 ... 
- Clairewd’s message ekmp
			给两个串第一个串是翻译表(密文可以通过翻译表翻译成明文),第二个串是由密文+明文组成,前面是密文(完整的),后面是明文(未必完整),问能不能把第二个串补全,输出最短的一种可能. 一开始 用的strin ... 
- 初窥Java之三
			一.基本数据类型之浮点型 每个数据它自身都有一个默认的类型,如果直接打印小数,默认类型就为double类型: float和double表示小数的精度不是特别的高,如果对于精确度要求非常的高,我们 都使 ... 
- HDU 2242 考研路茫茫—空调教室 (边双连通+树形DP)
			<题目链接> 题目大意: 给定一个连通图,每个点有点权,现在需要删除一条边,使得整张图分成两个连通块,问你删除这条边后,两联通块点权值和差值最小是多少. 解题分析: 删除一条边,使原连通图 ... 
- 聊聊微服务熔断降级Hystrix
			在现在的微服务使用的过程中,经常会遇到依赖的服务不可用,那么如果依赖的服务不可用的话,会导致把自己的服务也会拖死,那么就产生了熔断,熔断顾名思义就是当服务处于不可用的时候采取半开关的状态,达到一定数量 ... 
