HDU 3466 Proud Merchants(01背包的应用)

来源:互联网 发布:淘宝推广计划怎么写 编辑:程序博客网 时间:2024/06/01 08:43

按q-p排序后再01背包

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=508;int f[10*maxn];struct mimi{    int p,q,v;}a[maxn];int cmp(mimi a,mimi b){    return a.q-a.p<b.q-b.p;}int main(){    int n,m;    while(scanf("%d%d",&n,&m)!=EOF)    {        memset(f,0,sizeof(f));        for(int i=1;i<=n;i++)        {            scanf("%d%d%d",&a[i].p,&a[i].q,&a[i].v);        }        sort(a+1,a+n+1,cmp);        for(int i=1;i<=n;i++)        {            for(int j=m;j>=a[i].p;j--)            {                if(j>=a[i].q)                {                    f[j]=max(f[j],f[j-a[i].p]+a[i].v);                }            }        }        printf("%d\n",f[m]);    }    return 0;}


0 0
原创粉丝点击