题目大意:现在给出商品,有三个参数,记为pi,qi,vi,vi是商品的在你心里价值,pi是商品的价格,qi是你要买商品的时候至少需要的钱然后求可得的最大价值。

单词积累:Merchants 商人  typical 标志性的

题解:首先我们考虑商品A,B,其pi,qi,vi记为pA,qA,vA,pB,qB,vB,我们可以发现,有些买东西的顺序也会决定你可以得到的最大价值,那么怎么才可以使顺序无影响呢?可以这样想,我们如果A,B都要买,先买A,那么需要的资金至少为pA+qB,先买B,那么需要的资金至少为pB+qA,那么想要资金越少,要先买qi-pi大的商品,所以排序一下再背包就可以了。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; struct node
{
int p,q,v;
}a[]; int cmp(node x,node y)
{
return (x.q-x.p)<(y.q-y.p);
} int main()
{
int n,m,i,j;
int f[];
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=;i<n;++i)
scanf("%d %d %d",&a[i].p,&a[i].q,&a[i].v);
sort(a,a+n,cmp);
memset(f,,sizeof(f));
for(i=;i<n;++i)
for(j=m;j>=a[i].q;--j)
if(f[j]<f[j-a[i].p]+a[i].v)f[j]=f[j-a[i].p]+a[i].v;
printf("%d\n",f[m]);
}
return ;
}

HDU 3466 Proud Merchants的更多相关文章

  1. HDU 3466 Proud Merchants 带有限制的01背包问题

    HDU 3466 Proud Merchants 带有限制的01背包问题 题意 最近,伊萨去了一个古老的国家.在这么长的时间里,它是世界上最富有.最强大的王国.因此,即使他们的国家不再那么富有,这个国 ...

  2. HDU 3466 Proud Merchants(01背包问题)

    题目链接: 传送门 Proud Merchants Time Limit: 1000MS     Memory Limit: 65536K Description Recently, iSea wen ...

  3. HDU 3466 Proud Merchants(01背包)

    这道题目看出背包非常easy.主要是处理背包的时候须要依照q-p排序然后进行背包. 这样保证了尽量多的利用空间. Proud Merchants Time Limit: 2000/1000 MS (J ...

  4. hdu 3466 Proud Merchants 01背包变形

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

  5. HDU 3466 Proud Merchants(01背包)

    题目链接: 传送门 Proud Merchants Time Limit: 1000MS     Memory Limit: 65536K Description Recently, iSea wen ...

  6. hdu 3466 Proud Merchants(有排序的01背包)

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

  7. HDU 3466 Proud Merchants(背包问题,要好好理解)

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

  8. HDU 3466 Proud Merchants(0-1背包)

    http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意: 最近,iSea去了一个古老的国家.在这么长的时间里,它是世界上最富有和最强大的王国.结果,这个国家 ...

  9. HDU 3466 Proud Merchants【贪心 + 01背包】

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

随机推荐

  1. 期间值日期查询SQL

    甘特图的数据时常需要 查询出开始时间-结束时间的记录数据 常常我们使用的是 Between  and  或者  >= ,  <=   仔细一想  我们需要查询的数据是有落在这个期间的数据 ...

  2. SQL server与Oracle触发器的创建与使用

    SQL Server 1创建触发器 GO BEGIN IF (object_id('WMY', 'tr') is not null) DROP trigger WMY END; GO CREATE T ...

  3. WCF创建到使用到发布

    1,在VS里面新建一个类库项目 2,向类库项目里添加WCF服务文件 3.按照WCF约束规范编写接口和实现类 using System; using System.Collections.Generic ...

  4. Visual Studio 2013使用SASS和Compass--SASS和Compass安装

    你需要安装ruby 你需要安装SASS/Compass 安装sass,在命令行中输入: $ gem install sass 你可能会问gem是什么?gem是ruby的包管理器.包的概念呢,就是一个为 ...

  5. Linux 网络编程基础(3) -- 数据的IO

    首先介绍两个数据结构及相关的操作函数:struct iovec.struct msghdr struct iovec { void * iov_base;    /*向量的缓冲地址*/ size_t ...

  6. Make Yahoo! Web Service REST Calls With C#

    原文 http://developer.yahoo.com/dotnet/howto-rest_cs.html The .NET Framework provides classes for perf ...

  7. DateTimePicker——开源的Android日历类库

    Github托管地址:https://github.com/flavienlaurent/datetimepicker

  8. 如何成为uber司机,uber司机详细注册流程

    怎样注册uber司机 如何注册加入uber司机 全国加入Uber 的要求 车辆要求:要求裸车价8万以上,车龄5年以内,第三者责任险保额30万以上,不支持20万以下的面包车/商务车,不支持4座以下车辆. ...

  9. protobuf 中的嵌套消息的使用

    protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数 ...

  10. BootStrap 智能表单系列 十一 级联下拉的支持

    像省市县选择的这种,但凡是个人肯定都见过,实现方式有很多种 1.有在第一级选择的时候去加载或者从本地对象中拿第一级对应的数据源显示到列表中,第二级以此类推 2.也有将所有的项都加载到select中,然 ...