zoukankan      html  css  js  c++  java
  • hdu 2602 Bone Collector 01背包模板

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602

    题目要求是尽量装的最多,所以初始化的时候都为0即可。

    如果要求恰好装满,初始化的时候除了dp[0] = 0,其他都要设成-inf,表示不合法情况。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int T;
     4 int dp[1010][1010];
     5 int v[1010], w[1010];
     6 int main() 
     7 {
     8  //   freopen("in.txt", "r", stdin);
     9    // freopen("out.txt", "w", stdout);
    10     scanf("%d", &T);
    11     while(T--)
    12     {
    13         int N, V;
    14         scanf("%d%d", &N, &V);
    15         memset(dp, 0, sizeof(dp));
    16         for(int i = 1; i <= N; i++) scanf("%d", &v[i]);
    17         for(int i = 1; i <= N; i++) scanf("%d", &w[i]);
    18         
    19         for(int i = 1; i <= N; i++)
    20         {
    21             for(int j = 0; j <= V; j++)
    22             {
    23                 if(j >= w[i]) dp[i][j] = max(dp[i-1][j-w[i]]+v[i], dp[i-1][j]);
    24                 else dp[i][j] = dp[i-1][j];
    25             }
    26         }
    27         printf("%d
    ", dp[N][V]);
    28         
    29     }
    30     return 0;
    31 }

    滚动数组:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int T;
     4 int dp[1010];
     5 int v[1010], w[1010];
     6 int main() 
     7 {
     8  //   freopen("in.txt", "r", stdin);
     9    // freopen("out.txt", "w", stdout);
    10     scanf("%d", &T);
    11     while(T--)
    12     {
    13         int N, V;
    14         scanf("%d%d", &N, &V);
    15         memset(dp, 0, sizeof(dp));
    16         for(int i = 1; i <= N; i++) scanf("%d", &v[i]);
    17         for(int i = 1; i <= N; i++) scanf("%d", &w[i]);
    18         
    19         for(int i = 1; i <= N; i++)
    20         {
    21             for(int j = V; j >= w[i]; j--)
    22             {
    23                 dp[j] = max(dp[j-w[i]]+v[i], dp[j]);
    24             }
    25         }
    26         printf("%d
    ", dp[V]);
    27         
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    For each···in / For···in / For···of
    JavaScript object
    specific word count (index of )
    history of program
    js的回调函数
    promise
    js的事件流事件机制
    js的closures(闭包)
    baidu-map
    基于封装优点的类设计习惯
  • 原文地址:https://www.cnblogs.com/titicia/p/5355016.html
Copyright © 2011-2022 走看看