zoukankan      html  css  js  c++  java
  • 【C/C++】01背包问题/动态规划

    按小蓝书上写的大数据情况下没过,按解答区一个大佬的修改了过了

    #include <bits/stdc++.h>
    using namespace std;
    
    class Solution {
    public:
        /**
         * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
         * 计算01背包问题的结果
         * @param V int整型 背包的体积
         * @param n int整型 物品的个数
         * @param vw int整型vector<vector<>> 第一维度为n,第二维度为2的二维数组,vw[i][0],vw[i][1]分别描述i+1个物品的vi,wi
         * @return int整型
         */
        int knapsack(int V, int n, vector<vector<int>>& vw) {
            // write code here
            // 创建dp数组
            vector <vector<int>> dp;
            vector <int> tmp;
            tmp.insert(tmp.begin(), V + 1, 0);
            for (int i = 0; i <= n; i++)
            {
                dp.push_back(tmp);
            }
    
            for (int i = 1; i <= n; i++)
            {
                for(int j = 1; j <= V; j++)
                {
                    if (j < vw[i-1][0]) 
                    {
                        dp[i][j] = dp[i-1][j];
                    }
                    else
                    {
                        dp[i][j] = max(dp[i-1][j], dp[i-1][j-vw[i-1][0]] + vw[i-1][1]);
                    }
                }
                // for (int j = vw[i-1][0]; j <= V; j++)
                // {
                //     dp[i][j] = max(dp[i-1][j], dp[i-1][j-vw[i-1][0]] + vw[i-1][1]);
                // }
            }
            int maxx = 0;
    
            for (int i = 1; i <= V; i++)
            {
                maxx = max(dp[n][i], maxx);
            }  
    
            return maxx;
        }
    }; 
    
    int main()
    {
        vector<vector<int>> arr {{1,3},{10,4}};
        int v = 10, n = 2;
        Solution solution;
        cout << solution.knapsack(v, n, arr) << endl;
        system("pause");
    } 
    
  • 相关阅读:
    第二周:对Java面向对象的特点的基本感受
    第一周学习情况
    插入排序
    快速排序
    vue传值(小demo)
    Vue下简单分页及搜索功能
    js超简单冒泡算法
    vue框架中实现今天昨天前天最近时间
    vue简单的v-for
    ssm web.xml配置解析
  • 原文地址:https://www.cnblogs.com/kinologic/p/14672453.html
Copyright © 2011-2022 走看看