动态规划 完全背包问题 携带研究材料

携带研究材料

携带研究材料\]https://kamacoder.com/problempage.php?pid=1052) 学习记录自[代码随想录](https://programmercarl.com/) 要点:1.完全背包问题中物品可以选无数次,所以相比于01背包问题,在遍历背包容量时需要正向遍历 ```cpp #include #include using namespace std; class Solution{ public: int max_value(vector& weight, vector& value, int n, int v){ // 1.dp[j]代表背包容量为j时的最大价值为dp[j] vector dp(v+1, 0); // 2.递推公式:dp[j] = max(dp[j], dp[j-weight[i]] + value[i]) // 3.初始化为0同01背包 // 4.遍历顺序因为物品可以选无数次,所以内层遍历背包容量时正向遍历 for(int i = 0; i < n; i++){ for(int j = weight[i]; j < v+1; j++){ dp[j] = max(dp[j], dp[j-weight[i]] + value[i]); } } // 5.举例推导dp数组 return dp[v]; } }; int main(){ int N, V; cin >> N >> V; vector weight(N); vector value(N); for(int i = 0; i < N; i++){ int wei, val; cin >> wei >> val; weight[i] = wei; value[i] = val; } Solution Solution; int result = Solution.max_value(weight, value, N, V); cout << result; return 0; } ```

相关推荐
元亓亓亓7 小时前
LeetCode热题100--105. 从前序与中序遍历序列构造二叉树--中等
算法·leetcode·职场和发展
纪元A梦7 小时前
贪心算法在SDN流表优化中的应用
算法·贪心算法
JCBP_8 小时前
QT(4)
开发语言·汇编·c++·qt·算法
码熔burning8 小时前
JVM 垃圾收集算法详解!
jvm·算法
小柴狗8 小时前
C语言关键字详解:static、const、volatile
算法
仙俊红10 小时前
LeetCode每日一题,20250914
算法·leetcode·职场和发展
风中的微尘17 小时前
39.网络流入门
开发语言·网络·c++·算法
西红柿维生素17 小时前
JVM相关总结
java·jvm·算法
ChillJavaGuy19 小时前
常见限流算法详解与对比
java·算法·限流算法
sali-tec19 小时前
C# 基于halcon的视觉工作流-章34-环状测量
开发语言·图像处理·算法·计算机视觉·c#