tjut 3466

来源:互联网 发布:九龙朝精灵升级数据 编辑:程序博客网 时间:2024/05/16 01:34
#include <stdio.h>  #include <string.h>  #include <algorithm>  using namespace std;    struct node  {      int p,q,v;  } a[555];    int cmp(node x,node y)//按q-p排序,保证差额最小为最优  {      return x.q-x.p<y.q-y.p;  }    int main()  {      int n,m,i,j;      int dp[5555];      while(~scanf("%d%d",&n,&m))      {          for(i = 0; i<n; i++)              scanf("%d%d%d",&a[i].p,&a[i].q,&a[i].v);          memset(dp,0,sizeof(dp));          sort(a,a+n,cmp);          for(i = 0; i<n; i++)          {              for(j = m; j>=a[i].q; j--)//剩余的钱大于q才能买              {                  dp[j] = max(dp[j],dp[j-a[i].p]+a[i].v);//这里的j-a[i].p决定了之前的排序方法              }          }          printf("%d\n",dp[m]);      }        return 0;  } 

0 0
原创粉丝点击