hdu 3466 01背包

来源:互联网 发布:java多态例子 编辑:程序博客网 时间:2024/06/05 06:46
#include<cstdio>#include<algorithm>#include<cstring>#define MAX(x,y) ((x)>(y)?(x):(y))using namespace std;int dp[5050];struct node{int p,q,v;}m[550];bool cmp(const node &a,const node &b){return a.q-a.p<b.q-b.p;}int main(){int n,col;while(~scanf("%d%d",&n,&col)){for(int i=1;i<=n;i++)scanf("%d%d%d",&m[i].p,&m[i].q,&m[i].v);sort(m+1,m+1+n,cmp);memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){for(int j=col;j>=m[i].q;j--)dp[j]=MAX(dp[j],dp[j-m[i].p]+m[i].v);}printf("%d\n",dp[col]);}}

0 0
原创粉丝点击