zoukankan      html  css  js  c++  java
  • HDU 2191 悼念512【多重背包+二进制优化】

    大意分析:

    多重背包,转化为01背包即可 

    可以用二进制进行优化

    代码:(代码没有优化,下题是优化才可过的)

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 
     6 const int maxn = 105;
     7 
     8 int n, m, tot;
     9 int p[2005], h[2005];
    10 int dp[maxn];
    11 int solve() {
    12     memset(dp, 0, sizeof(dp));
    13     for(int i = 1; i < tot; i++) {
    14         for(int j = n; j >= p[i]; j--) {
    15             dp[j] = max(dp[j], dp[j - p[i]] + h[i]);
    16         }
    17     }
    18     return dp[n];
    19 }
    20 
    21 int main() {
    22     int t;
    23     int a, b, c;
    24     scanf("%d",&t);
    25     while(t--) {
    26         tot = 1;
    27         scanf("%d %d",&n, &m);
    28         while(m--) {
    29             scanf("%d %d %d",&a, &b, &c);
    30             while(c--) {
    31                 p[tot] = a; h[tot++] = b;
    32             }
    33         }
    34         printf("%d
    ",solve());
    35     }
    36     return 0;
    37 }
    View Code
  • 相关阅读:
    hutool 解析 Excel
    上传文件
    Cannot construct instance of `com.**` (although at least one Creator exists)
    Java8之Optional
    java8之Stream
    java8之Lambda
    springboot+mybatis事务管理
    queryWrapper in like
    Java 组装 Tree
    JWT
  • 原文地址:https://www.cnblogs.com/zhanzhao/p/3942716.html
Copyright © 2011-2022 走看看