hdu3466 Proud Merchants (01背包)

来源:互联网 发布:库存数据分析ppt案例 编辑:程序博客网 时间:2024/05/20 23:07
/*物品A(p1,q1) B(p2,q2)买AB需满足:p1+q2,p2+q1;选小的先买:p1+q2<p2+q1--->q2-p2<q1-p1 */#include <cstdio>    #include <cstring>#include <algorithm>#define MAXN 502using namespace std;struct node {int P,Q,val;}iterm[MAXN];int cmp(node x,node y){return (x.Q-x.P)<(y.Q-y.P);}int main(){int n,m,i,j;int dp[5002];while(scanf("%d %d",&n,&m)!=EOF){for(i=0;i<n;++i)scanf("%d %d %d",&iterm[i].P,&iterm[i].Q,&iterm[i].val);sort(iterm,iterm+n,cmp);memset(dp,0,sizeof(dp));for(i=0;i<n;++i){for(j=m;j>=iterm[i].Q;--j)if(dp[j]<dp[j-iterm[i].P]+iterm[i].val)dp[j]=dp[j-iterm[i].P]+iterm[i].val;}printf("%d\n",dp[m]);}return 0;}

原创粉丝点击