题干:

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

题目大意:

给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品有  价格 P    价值 V    还有一个很特别的属性 Q, Q 指 你如过想买这件物品 你的手中至少有这钱Q 。 虽然你只要花费 钱P ,但你的手中至少有钱Q,如果不足Q ,不能买。问给你钱M ,列出N件物品,最多能获得多少价值的东西。。。。

解题报告:

先排序,然后跑一边0-1背包即可。这个排序很巧妙啊

AC代码:

#include<bits/stdc++.h>
using namespace std;
struct Node {int p,q,v;
} node[500 + 5];
int dp[5000 + 5];
bool cmp(const Node & a,const Node & b) {return a.q-a.p<b.q-b.p;//b.q+a.p>b.p+a.q
}
int main()
{int n,m;while(cin>>n>>m) {for(int i = 1; i<=n; i++) {scanf("%d%d%d",&node[i].p,&node[i].q,&node[i].v);}memset(dp,0,sizeof(dp));sort(node+1,node+n+1,cmp);for(int i = 1; i<=n; i++) {for(int j = m;j >=max(node[i].q,node[i].p); j--) {dp[j] = max(dp[j],dp[j-node[i].p ] + node[i].v);}}printf("%d\n",dp[m]);}return 0;
}

【HDU - 3466 】Proud Merchants(dp,背包问题,巧妙排序)相关推荐

  1. 01背包入门:HDU 3466 Proud Merchants

    这道题对我来说还是有点难度的,所以参考了两个博主的博客:博主1博主2 Problem Description Recently, iSea went to an ancient country. Fo ...

  2. POJ 1417 True Liars(路径压缩并查集+DP背包问题)

    POJ 1417 True Liars(路径压缩并查集+DP背包问题) http://poj.org/problem?id=1417 题意: 给出p1+p2个人,其中p1个是好人,p2个是坏人.然后有 ...

  3. 【HDU 3466】【Proud Merchants】

    题目: Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and pow ...

  4. hdu 3466(dp)

    讲解博客 针对单个物品好理解贪心策略,两个物品相对比的思路不易理解. #include<cstdio> #include<iostream> #include<cstri ...

  5. HDU3466 Proud Merchants

    题目描述: Recently, iSea went to an ancient country. For such a long time, it was the most wealthy and p ...

  6. HDU - 3466(01背包理解)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:给你一些钱 m ,然后在这个国家买东西, 共有 n 件物品,每件物品价格P价值V还有一个很 ...

  7. HDU 1114 Piggy-Bank 简单DP

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1114 题目大意:完全背包问题,不过这次是求的最小值. 解题思路:首先是初始化问题,其次就是状态转移的时 ...

  8. HDU 1574 RP问题(DP)

    题目链接 :HDU 1574 RP问题 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  9. HDU 2196 Computer 树形DP经典题

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...

最新文章

  1. seaborn使用violinplot函数可视化水平小提琴图(Make Horizontal Violin Plot with violinplot in Seaborn)
  2. 干货丨2017年深度学习必读31篇论文(附下载地址)
  3. Style Report中报表组件的使用场景简析
  4. python爬虫可以干什么-Python 爬虫一 简介
  5. 教学计划c语言源代码,c语言教学计划.doc
  6. windows简易使用composer 安装国内镜像
  7. 有用的mysql语句
  8. 大牛书单 | 腾讯运维大咖陪你过724
  9. List中toArray()的使用方法
  10. spring总结_Spring综合课程总结
  11. 2019至今TIOBE编程语言排行榜Top 20,Python完胜C++了吗?
  12. ios学习8_KVC和字典转模型
  13. 计算机网络监控,计算机网络连接监控系统.doc
  14. 智能车基于RT1064+无线串口透传模块利用MATLAB辅助调节PID参数
  15. Elasticsearch Sliced Scroll分页检索案例分享
  16. 压敏电阻14D471K
  17. 用HTML+CSS做一个漂亮简单的个人网页~个人相册介绍个人主页模板(6个页面) ~学生HTML个人网页作业作品~
  18. Dell电脑安装系统时看不到固态硬盘的解决方案
  19. linux带密码解压密码,linux 下文件加密压缩和解压的方法
  20. 关于java软文_2018年最好的微商护肤品朋友圈软文(文案)

热门文章

  1. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第36篇]Index Calculus算法
  2. uos20专业版是linux哪个版本,WPS Office 2019 for Linux 专业版已与统一操作系统 UOS 完成适配...
  3. centos7安装python3.7.4_Centos7升级Python3.7.4
  4. 百度推送java_关于百度推送,请教一下大家
  5. linux 固定ip_linux固定IP
  6. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
  7. notes邮件正文显示不全_python实现一次性批量发邮件
  8. 当c语言表达式中同时有字符 整数,c语言第2章数据类型、运算符与表达式a.ppt
  9. inside uboot (五) DRAM的构成
  10. CPU8085 8086名字的由来