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

携带研究材料

携带研究材料\]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; } ```

相关推荐
月落归舟6 分钟前
Lambda + Arrays---小练习
数据结构·算法
2601_955354468 分钟前
seo臻系统和百度seo有什么区别
算法
君义_noip14 分钟前
信息学奥赛一本通 1487:【例 2】北极通讯网络
算法·图论·信息学奥赛·csp-s
会编程的土豆29 分钟前
【leetcode hot 100】二叉树二叉树
数据结构·算法·leetcode
XiYang-DING32 分钟前
【LeetCode】203. 移除链表元素(Remove Linked List Elements)
算法·leetcode·链表
墨神谕34 分钟前
希尔排序详解
数据结构·算法·排序算法
胡楚昊36 分钟前
Polar PWN (4)
linux·运维·算法
今儿敲了吗36 分钟前
51| 数独
算法·深度优先·图论
半瓶榴莲奶^_^37 分钟前
优先级队列(堆)
java·数据结构·算法
小樱花的樱花37 分钟前
C++引用:高效编程的技巧
开发语言·数据结构·c++·算法