完全背包问题是每件物品有无限个 完全背包问题的状态表示和01背包问题一样 dp[i][j]表示只看前i个物品,总体积<= j的最大价值 状态计算: 按照第i个物品选了多少个来分 然后综合起来就是 k是枚举的第i个物品的个数,k = 0, 1, 2,... 三层循环的二维做法 1 #include < ...
分类:
其他好文 时间:
2020-07-02 13:46:43
阅读次数:
45
数字组合 给定N个正整数$A_1,A_2,…,A_n$,从中选出若干个数,使它们的和为m,求有多少种选择方案。 这个问题是背包问题的一个变型: 设dp[i][j]为前i个数和为j的方案数,显然dp[0][0] = 1;即前0个数和为0的方案数为1。 状态转移方程: \[ dp[i][j]\\ =\\ ...
分类:
其他好文 时间:
2020-06-28 20:30:24
阅读次数:
49
P1216 数字三角形 每个节点的值只受左上,右上两节点影响。索引从1开始,避免处理边界问题。 int n,ans,a[1005][1005],dp[1005][1005]; //pull: dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + dp[i] ...
分类:
其他好文 时间:
2020-06-21 20:09:12
阅读次数:
61
125. 背包问题 II 中文English 有 n 个物品和一个大小为 m 的背包. 给定数组 A 表示每个物品的大小和数组 V 表示每个物品的价值. 问最多能装入背包的总价值是多大? 样例 样例 1: 输入: m = 10, A = [2, 3, 5, 7], V = [1, 5, 2, 4] ...
分类:
其他好文 时间:
2020-06-21 15:43:39
阅读次数:
51
dp题目整理 背包问题 榨取kkksc03 因为题目中有两个限制条件,所以并不能当做一般背包问题来做, 既然限制条件(类似于"体积")多了一个,那么现在维数也多开一维,同时表示其状态 我们又发现,这个题每种物品(需求)只能取一次,所以这是一道多维0/1背包题目 那么这题就很好做了 #include< ...
分类:
其他好文 时间:
2020-06-21 09:45:42
阅读次数:
35
【01背包问题】 1.如何用子问题表示 P[1…n , C]表示总问题 dp[ i ][ j ]表示P[ i…n,j ]的最大价值 则总问题P[1…n , C] = max{ P[2…n , C - v1 ] , P[ 2…n , C] } 2. 优化子结构和重叠子问题 3. 递归表达式 dp[ i ...
分类:
其他好文 时间:
2020-06-19 20:43:27
阅读次数:
78
1.题外话 kkksc03成功把我吸引过来~ 最近正好在复习基础,看到pj-的难度就想水一题。 2.解题意 4个科目,互不影响,说白了就是4组数据。给你四组数据,对于每一组数据,我们将其分成两组,使得max(sum1,sum2)最小,sum1和sum2分别指的是两组数据的和。 3.找思路 很明显,要 ...
分类:
其他好文 时间:
2020-06-17 19:58:15
阅读次数:
58
1.题目链接 https://leetcode-cn.com/problems/coin-change/ 2.题目描述 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 示例 1: 输 ...
分类:
其他好文 时间:
2020-06-13 17:24:42
阅读次数:
80
地址 https://www.acwing.com/problem/content/12/ 有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。 第 i 件物品的体积是 vi,价值是 wi。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出 字典序最小的方案 ...
#include using namespace std; const int N=100+10; //二维代价的背包问题,就是dpi,j,k 太大了,用滚动数组 //注意滚动数组倒着遍历j int n,dp[N][N]={0},w[N],m[N],v[N],V,M; int main() { ci... ...
分类:
其他好文 时间:
2020-06-06 21:52:58
阅读次数:
61