zoukankan      html  css  js  c++  java
  • hdu 2602 Bone Collector(01背包)

    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    const int maxn = 1e3 + 5;
    int val[maxn];
    int vol[maxn];
    int f[maxn][maxn];
    
    using namespace std;
    
    int main()
    {
        int t, n, v;
        scanf("%d", &t);
        while(t--){
            scanf("%d%d", &n, &v);
            for(int i = 1; i <= n; i++){
                scanf("%d", &val[i]);
            }
            for(int i = 1; i <= n; i++){
                scanf("%d", &vol[i]);
            }
            memset(f, 0, sizeof(f));            //状态转移方程
           for(int i = 1; i <= n; i++){
                for(int j = 0; j <= v; j++){
                    if(j >= vol[i])     //前i件物品放进体积为j的背包中的最大价值
                        f[i][j] = max(f[i - 1][j], f[i - 1][j - vol[i]] + val[i]);  //前i-1键物品放进体积为j-vol[i]的背包中,再加上第i个物品的价值,这里的条件是体积j大于vol[i]的体积
                    else               //前i-1件物品放进体积为j的背包中的价值
                        f[i][j] = f[i - 1][j];
                }
           }
           int ans = 0;
           for(int i = 0; i <= v; i++){
                ans = max(ans, f[n][i]);
           }
           printf("%d
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    文学-人物-苏轼:百科
    文学-人物:王维
    文学-人物:杜甫
    文学-人物:李白
    模型-CMM:百科
    公司-魏桥:百科
    云:VMware
    postfix
    CSS 实现背景图尺寸不随浏览器缩放而变化
    Java中线程的操作状态
  • 原文地址:https://www.cnblogs.com/Joe962850924/p/4275485.html
Copyright © 2011-2022 走看看