zoukankan      html  css  js  c++  java
  • 10背包完全背包多重背包混合模板

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int n;
     4 int a[1010],t[1010],w[1010];
     5 int dp[200010];
     6 struct node
     7 {
     8     int l,r,value;
     9 }num[100010];
    10 int cmp(node x,node y)
    11 {
    12     if(x.l == y.l)
    13         return x.r<y.r;
    14     return x.l<y.l;
    15 }
    16 int vis[100010];
    17 int main()
    18 {
    19     int T;
    20     scanf("%d%d",&n,&T);
    21     for(int i = 1; i <= n; i++)
    22     {
    23         scanf("%d%d%d",&t[i],&a[i],&w[i]);
    24         if(w[i]==-1)
    25             vis[i] = -1;
    26         if(w[i]==1)
    27             vis[i] = 1;
    28     }
    29     for(int i = 1; i<= n; i++)
    30     {
    31         if(vis[i] == -1)
    32         {
    33             for(int j = t[i]; j <= T; j++)
    34             {
    35                 dp[j] = max(dp[j],dp[j-t[i]]+a[i]);
    36             }
    37         }
    38         else
    39         {
    40             int x = w[i],k;
    41             for(k = 1;k <= x; k<<=1)
    42             {
    43                 for(int j = T; j >= k*t[i]; j--)
    44                     dp[j] = max(dp[j],dp[j-k*t[i]]+k*a[i]);
    45                 x-=k;
    46             }
    47             if(x!=0)
    48             {
    49                 for(int j = T; j >= x*t[i]; j--)
    50                 {
    51                     dp[j] = max(dp[j],dp[j-x*t[i]]+x*a[i]);
    52                 }
    53             }
    54         }
    55     }
    56     cout<<dp[T]<<endl;
    57     return 0;
    58 }
  • 相关阅读:
    学无止境,我爱python
    Flask目录
    Django目录
    前端目录
    python目录
    MySQL目录
    Oracle与Sql server的区别
    Git
    restful规范
    Django 解决跨域问题(写入到中间件中)
  • 原文地址:https://www.cnblogs.com/--lr/p/9438986.html
Copyright © 2011-2022 走看看