hdu Proud Merchants
此题是一个背包的题目,刚开始我并没有作任何的排序工作,所以出来的结果总是错的,仔细想想也确实是不对的,因为q[i]会限制dp[i]的值的变化。虽然我知道要按照某个量进行排序,对原数据进行处理,但是实在是想不到到底要处理那个数据。于是看了一下大神的博客,原来是要对q-p进行从小到大的排序。对于原因我也是不太懂。。。
#include"iostream"
#include"stdio.h"
#include"cmath"
#include"algorithm"
#include"string.h"
using namespace std;
#define mx 5005
int dp[mx];
struct node
{
int p,q,v,l;
}thing[mx];
bool cmp(const node a,const node b )
{
if(a.l!=b.l) return a.l<b.l;
}
int main()
{
int n,m,i,j,k;
while(scanf("%d%d",&n,&m)==)
{
for(i=;i<=n;i++)
{
cin>>thing[i].p>>thing[i].q>>thing[i].v;
thing[i].l=thing[i].q-thing[i].p;
}
sort(thing+,thing+n+,cmp);
memset(dp,,sizeof(dp));
for(i=;i<=n;i++)
{
if(thing[i].q>m) continue;
for(j=m;j>=thing[i].q;j--)
{
if(dp[j]<dp[j-thing[i].p]+thing[i].v)
dp[j]=dp[j-thing[i].p]+thing[i].v;
}
}
cout<<dp[m]<<endl;
}
return ;
}
hdu Proud Merchants的更多相关文章
- HDU 3466 Proud Merchants 带有限制的01背包问题
HDU 3466 Proud Merchants 带有限制的01背包问题 题意 最近,伊萨去了一个古老的国家.在这么长的时间里,它是世界上最富有.最强大的王国.因此,即使他们的国家不再那么富有,这个国 ...
- HDU 3466 Proud Merchants(01背包问题)
题目链接: 传送门 Proud Merchants Time Limit: 1000MS Memory Limit: 65536K Description Recently, iSea wen ...
- HDU 3466 Proud Merchants(01背包)
这道题目看出背包非常easy.主要是处理背包的时候须要依照q-p排序然后进行背包. 这样保证了尽量多的利用空间. Proud Merchants Time Limit: 2000/1000 MS (J ...
- 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背包)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- HDU3466 Proud Merchants[背包DP 条件限制]
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
- Proud Merchants
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) To ...
- Proud Merchants(POJ 3466 01背包+排序)
Proud Merchants Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) ...
随机推荐
- 基于cocoStudio的UIListView的可以左右滑动翻页的ListView
//WidgetSlideListView.h class WidgetEaseInListView : public cocos2d::gui::UIListView { public: stati ...
- Android 中PendingIntent---附带解决AlarmManager重复加入问题
最近在程序中使用到了notification功能,自然,就涉及到了PendingIntent,下面总结下. 1 什么是PendingIntent A description of an Intent ...
- hdu 1113 Word Amalgamation 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1113 题意:输入一个字典,然后再输入若干单词(每行中,1 <= 单词数 <= 100,并且 ...
- 《Algorithms算法》笔记:优先队列(2)——二叉堆
二叉堆 1 二叉堆的定义 堆是一个完全二叉树结构(除了最底下一层,其他层全是完全平衡的),如果每个结点都大于它的两个孩子,那么这个堆是有序的. 二叉堆是一组能够用堆有序的完全二叉树排序的元素,并在数组 ...
- android之常用知识点(一)
本文主要包括安卓一些常用的知识点 android常用的四种响应按钮点击事件的方法 android动态刷新界面 android常用的listView用法 android常用的handler的用法 and ...
- Xamarin.Android开发实践(十六)
Xamarin.Android之Fragment Walkthrough 利用Fragment设计能够兼容不同屏幕的应用 这里我们先围观下最后的成果图,给读者打打气: 普通手机上显示的结果: 在平板上 ...
- Wcf for wp8 上传图片到服务器,将图片名字插入数据库字段(五)
环境:.NET Framework 3.5 服务: IIS EXpress托管 WCF服务程序 配置:Web.config <!--<connectionStrings> <a ...
- scp 使用
[spark-hadoop@master ~]$ sudo scp /etc/profile spark-hadoop@slave1:/etc spark-hadoop@slave1's passwo ...
- 版本引发的血案check the manual that corresponds to your MySQL server version for the right syntax
该错误mysql5.1有问题,mysql5.3版本没问题
- 微信SDK开发学习
public class MainActivity extends Activity { // 应用程序的id,就是在网上开发平台创建应用的appid public static final Stri ...