
动态规划
文章平均质量分 70
Brightess
毕业于湖南城市学院
目前在某游戏大厂搬砖(
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CF 607B - Zuma(区间 dp 记忆化搜索写法)
记搜大法好原创 2023-04-19 15:28:19 · 468 阅读 · 0 评论 -
CF 118D Caesar‘s Legions(记忆化搜索)
记搜大法好原创 2023-04-18 11:50:43 · 196 阅读 · 0 评论 -
poj 2184 Cow Exhibition(01背包经典变种 负数处理 两种写法)
poj 2184 Cow Exhibition(01背包经典变种 负数处理 两种写法)原创 2022-11-18 10:52:36 · 219 阅读 · 0 评论 -
牛客2022 暑期多校4 D Jobs (Easy Version)(递推优化策略)
递推优化原创 2022-07-31 17:40:48 · 319 阅读 · 0 评论 -
2022 牛客暑期多校2 K - Link with Bracket Sequence I(线性dp)
2022暑期多校 线性dp原创 2022-07-24 12:42:17 · 329 阅读 · 0 评论 -
2022牛客寒假1 中位数切分(推结论 or 线段树优化dp + 前缀和)
题意:给定一个 长为 n 的数组 a 和 一个整数 m,你需要将其 切成连续的若干段,使得 每一段的中位数 都 大于等于 m,求 最多可以划分成多少段。思路:这是一道十分有趣的题目,预期的简单解法 O(n) ,复杂解法 O(nlogn) 。一、简单解法:记 数列中 ≥ m 的数字 有 cnt1 个,< m 的数字 有 cnt2 个,则 答案为 cnt1 - cnt2,该值 ≤ 0 时输出 -1证明一(严谨):记 f(l, r) 为 原数组中 a[l],...,a[r] 一段中的元...原创 2022-04-29 22:45:28 · 740 阅读 · 2 评论 -
2022牛客寒假1 炸鸡块君与FIFA22(做法一:倍增 st表)
思路:这是一道关于 倍增(倍增算法讲解) 的一道典型例题。我们注意到 起始分数若在 % 3 意义下相等,则 经历 [l, r] 一段后分数的变化量是一个定值(重要)定义 st[3][200010][21] 之中 st[k][i][j] 表示 在初始分数为 k 的情况下 经历了 [i, i + 2 ^ j - 1] 一段游戏后 分数的 变化量;假设我们 已经预处理出了 st,则对于 每一次询问 ask,可以 先将某初始分数 start 对 3 取模,然后按照 倍增的套路 从 l 跳 若干个 2...原创 2022-04-26 12:20:37 · 849 阅读 · 0 评论 -
倍增算法讲解 + 例题:AcWing 1273. 天才的记忆(RMQ问题的ST算法)
倍增,意思就是 “成倍增长”。在进行 递推 时,如果 状态空间很大,通常的 线性递推 无法满足 时间 与 空间复杂度 的要求,那么我们可以通过 成倍增长 的方式,只递推 状态空间 中在 2 的整数次幂位置上的值 作为代表。当需要 其他位置上 的值时,我们通过 “任意整数可以表示成若干个 2 的次幂项的和” 这一性质,使用 之前求出的代表值 拼成 所需的值。所以使用 倍增算法 的一个基本要求:递推问题 的状态空间 关于 2 的次幂 具有 可划分性。“倍增” 与 “二进制划分” 两个思想 互相结合,降低原创 2022-04-25 21:55:57 · 2778 阅读 · 0 评论 -
AcWing 1085. 不要62(数位dp)
题意:定义 不吉利的数字 为所有 含有 4 或 62 的号码。例如:62315,73418,88914 都属于 不吉利号码。但是,61152 虽然含有 6 和 2,但不是连号,所以属于 吉利数字 之列。给定区间 [a, b],问其中有多少个 吉利数字?思路:本题和之前几道数位dp的题目思考方式类似,假设 数字 num 当前枚举到第 i 位,且 第 i 位数字是 x,那么对于 答案的第 i 位数字 j 来说,有 两种填法:1.0 ~ x - 1用 last 表示 num 中第 i ...原创 2022-04-15 16:04:20 · 784 阅读 · 0 评论 -
AcWing 1084. 数字游戏 II(数位dp)
题意:定义一种取模数,这种数字必须满足 各位数字之和 mod N 为 0。指定一个整数闭区间 [a, b],问这个 区间内有多少个取模数。思路:一般来说,数位Dp这类题目难点在于 如何预处理左分支方案数对于本题,假设我们当前枚举到的第 i 位,且第 i 位上的数字是 x,那么对于答案中的第 i 位数字 j 来说,可以填两类数:1.0 ~ x - 1用 j 表示第 i 位数字(最高位),用 last 表示当前数严格前面数位上的数字之和,用sum表示后 i + 1 位(包括第 i 位)数字..原创 2022-04-14 21:24:15 · 3022 阅读 · 0 评论 -
AcWing 1083. Windy数(数位dp)
题意:Windy 数定义:不含前导零 且 相邻两个数字之差至少为 2 的 正整数。输入两个整数:A 、B问:在 A 和 B 之间,包括 A 和 B,总共有多少个 Windy 数?思路:和前两题的思路一样,我们分别对 A - 1、B 两个数进行数位dp操作,求出 dp(B)([0, B] 区间内Windy数的数量),dp(A-1)([0, A-1] 区间内Windy数的数量)。之后利用前缀和的思想,区间 [A, B] 内Windy数的数量即为:dp(B) - dp(A-1)。对于一个数 N,..原创 2022-04-14 17:18:35 · 667 阅读 · 0 评论 -
AcWing 1082. 数字游戏(数位dp)
题意:定义 “不降数”:满足从左到右各位数字呈非下降关系的数字,如 123,446现指定一个整数闭区间 [a,b],问这个区间内有多少个不降数。思路:这道题仍旧可以延续上一题AcWing 1081. 度的数量的思考方式,把 x 的每一位存储到数组中去,从最高位依次枚举,对于每一位,我们有两个分支,我们以顶点为例子:填 0~a(n-1) 中的任意数字,记为 x。填 a(n) 的方案,后续往下继续细分第n-1位。对于分支一(左分支):x 在前面,后面有 n-1 个位子,..原创 2022-04-13 23:06:57 · 3186 阅读 · 2 评论 -
AcWing 1081. 度的数量(数位统计dp)
题意:题目就是在一个区间[x,y]内,有多少个符合题意的数,“符合题意的数”是指:这个数的B进制表示中,其中有K位是1、其他位全是0。比如样例中B=2,K=2,这个数是18.就是把18化为二进制,18 化为二进制数为:10010,其中有2位1,其他位都是0.再比如 B=3,K=2,这个数是17.就是把17化为三进制,17化为三进制为110 ,其中也有2个1,其余都是0.思路:这是一道数位dp的题目,数位dp的题目的问法一般如下:某个区间内,满足某种性质的数的个数。对于数位dp问题一般..原创 2022-04-13 12:34:17 · 853 阅读 · 1 评论 -
AcWing 321. 棋盘分割(记忆化搜索 二维区间DP 二维前缀和)
题意:给定一个 8×8 的棋盘,棋盘的 每个小方格 都有一个 权值 wx,y每次我们可以对棋盘进行一次 横切 或 竖切,将 棋盘 分成两块矩形的 子棋盘分割完一次后,我们可以 选择两个 子棋盘 中的一个 再继续 递归 操作可以发现题目中给的这个图片,右边这个并不是递归下去做的:他对第一次分割的两个矩形又分别进行了分割(题目要求我们只能保留一个继续分割)现需要把棋盘按照上述分割方案,分成 n 块(n−1 次划分操作)求一个划分方案,使得各个子棋盘的 总分的均方差最小思路:本题如果用...原创 2022-04-12 22:21:14 · 358 阅读 · 1 评论 -
AcWing 479. 加分二叉树(区间dp记录方案 二叉树前、中序遍历)
题意:给定二叉树的中序遍历:1、2、3、…、n,我们知道会有不同的形态,题目要求我们求出 所有形态中分值最大的方案(输出其对应的前序遍历)思路:我们知道,一棵子树 的 中序遍历 在 整棵树的中序遍历序列中 一定是 连续的一段dp[l, r] 状态表示集合:当前 以 l 为左端点,r 为右端点的区间 作为 中序遍历,生成树的方案属性:所有方案中的最大分数dp[l, r] 状态表示(集合划分的依据:根据根节点在区间[L,R]的不同位置进行划分)我们假设根节点在区间[L,R]中的第k个点,那...原创 2022-04-11 21:09:37 · 736 阅读 · 0 评论 -
AcWing 1069. 凸多边形的划分(区间dp 高精度加法 乘法)
题意:给定 n 个点的 凸多边形 中每个 顶点 的 权值 wi我们可以把该 凸多边形 划分成 n - 2 个 三角形(三角形不能相交,这样就能保证是 n−2 了)每次划分三角形的 费用 为 三个顶点权值 的 乘积求一个划分 方案,使得方案的 费用总和 最小思路:(本题的分析思路与上一题不同,但是推导出的状态转移方程两者一致)本题是一个给定的 凸多边形 求 三角剖分 的最小费用方案很显然一个 凸多边形的剖分方案 并不唯一:在 选定 多边形中 两个点 后,找出 三角形 的 第三个点 的方案有..转载 2022-04-11 14:40:19 · 260 阅读 · 0 评论 -
AcWing 320. 能量项链(区间dp)
题意:给定 N 个能量石,每个能量石有一个二元属性 (wi,1,wi,2)其中 wi,1 表示第 i 个能量石和第 i−1 个能量石融合产生的 能量 的其中一个参数当然 wi,2 表示第 i 个能量石和第 i+1 个能量石融合产生的 能量 的其中一个参数魔法石是顺序且环形摆放的,每次可以融合相邻两个魔法石融合两个能量石 i,i+1 所产生的能量为(题目保证,相邻能量石的参数一致,首尾一致)Ei,i+1=wi,1×(wi,2或wi+1,1)×wi+1,1Ei,i+1 = wi,1 × (wi...转载 2022-04-11 09:49:48 · 221 阅读 · 0 评论 -
AcWing 1068. 环形石子合并(区间dp)
题意:给定 n 个石子的 分数 wi,且石子是 环形放置 的(即:在给定的顺序上,同时满足 1 和 n 也是相邻的)规定每次只能合并 相邻 的两堆石子,形成一个新的石子堆,合并的 费用 是两个石子堆的 分数之和求解两个方案:方案一:把这 n 堆石子合并为一堆,且满足费用最大的方案方案二:把这 n 堆石子合并为一堆,且满足费用最小的方案思路:本题是限制只能合并 相邻两堆石子的模型,是区间dp模板题:AcWing 282. 石子合并 的环形扩展问题。考虑如何设定 动态规划 的..转载 2022-04-10 21:18:41 · 312 阅读 · 0 评论 -
AcWing 900. 整数划分(计数类dp or 完全背包求方案数)
题意:一个正整数 n 可以表示成若干个正整数之和,形如:n = n1 + n2 + ... + ng,其中 n1>n2>...> nk,k > 1。我们将这样的一种表示称为正整数 n 的一种划分。现在给定一个正整数 n,请你求出 n 共有多少种不同的划分方法。解法一 计数dpf[i,j] 的状态表示:集合:所有总和是 i,并且恰好表示成 j 个数的和的方案属性:Countf[i,j] 的状态计算:我们以 “最小值是 1”、“最小值大于 1” 进行集合划分(不重不..原创 2022-03-30 21:25:10 · 563 阅读 · 2 评论 -
AcWing 902. 最短编辑距离(线性dp 初始化细节)
题意:如题。思路:f[i][j] 状态表示 :集合:所有将 a[1 ~ i] 变成 b[1 ~ j] 的 操作方式属性:操作数的最小值 min状态计算 :依据最后一步考虑三种操作,对应 f[i][j] 代表集合共有 三个子集① 删除操作:把 a[i] 删掉之后 a[1 ~ i] 和 b[1 ~ j] 匹配所以之前要先做到 a[1 ~ (i-1)] 和 b[1 ~ j] 匹配f[i-1][j] + 1② 插入操作:插入之后 a[i] 与 b[j] 完全匹配,所以插入的就..原创 2022-03-26 22:59:45 · 362 阅读 · 0 评论 -
AcWing 897. 最长公共子序列(线性dp LCS问题)
题意:给定两个字符串,求两串的最长公共子序列(LCS问题)思路:直接上dp分析:f[i,j] 状态表示:**集合:**所有 a[1 ~ i] 与 b[1 ~ j] 的 公共子序列 的集合属性:长度的最大值 max状态计算:时间复杂度:O(nm)O(nm)O(nm)(n、m 分别为两个字符串的长度)代码:#include<bits/stdc++.h>using namespace std;const int N = 1010;int dp[N][N];int n..原创 2022-03-26 20:56:07 · 1160 阅读 · 0 评论 -
AcWing 1074. 二叉苹果树(有依赖的分组背包问题 树形dp)
AcWing 10. 有依赖的背包问题(树形dp + 分组背包)#include<bits/stdc++.h>using namespace std;const int N = 110, M = N<<1;int n, m;int h[N], e[M], ne[M], w[M], idx;int dp[N][N];void add(int a, int b, int c){ e[idx] = b, ne[idx] = h[a], w[idx] = c,..原创 2022-03-24 22:08:15 · 306 阅读 · 0 评论 -
AcWing 323. 战略游戏(树形dp scanf格式化输入)
本题是 AcWing 285. 没有上司的舞会 的对偶题题意:每条边上至少选择一个节点,可以选择的最小权值。思路:树形dp,与没有上司的舞会具有对称性没有上司的舞会:每条边上最多选择一个点,求最大权值战略游戏:每条边上最少选择一条点,求最小权值状态表示f[u][0]:所有以u为根的子树中选择,并且不选u这个点的方案f[u][1]:所有以u为根的子树中选择,并且选u这个点的方案属性:Min状态计算当前u结点不选,子结点一定选f[u][0]=∑(f[si,1])f[u][0]=...原创 2022-03-24 21:55:17 · 3025 阅读 · 0 评论 -
AcWing 1075. 数字转换(约数之和 + 树形dp 求树的最长路径运用)
题意:如果一个数 x 的 约数之和 y(不包括他本身)比他本身 小,那么 x 和 y 可以 互相转换给定一个正整数 n,求出正整数 [1,n] 集合中:在不出现重复数字的情况下,能进行的最大变换步数思路:1、如果一个数 x 的约数之和 y(不包括他本身)比他本身小,则 x 与 y 连一条边,问题转化为求树的最长路径问题2、由于任意正整数 x,的 约数之和 是 唯一的,且本题要求只有约数之和 小于 自身才能转换,故对于所有的 x 来说,他向 小于 自己的数转换的边 至多 只有一条,那就是 x 的..原创 2022-03-24 17:07:59 · 840 阅读 · 0 评论 -
AcWing 1073. 树的中心(树形dp)
题意:给定一棵树,树中包 含 n 个结点(编号1~n)和 n−1 条 无向边,每条边都有一个权值。在树中找到一个点,使得 该点到树中其他结点的最远距离最近。思路:我们以题目给出的样例构建一棵树:分别求出每个点到其它所有点的最长距离,在 所有距离之中取最小值考虑一下 每个点到其它所有点距离 分为哪几类我们可以分为 两大类,第一大类:从 当前点开始往子节点走 的距离(往下)第二大类:从 当前点开始往父节点走 的距离(往上)其中第一大类可以用 上一题:AcWing 1072. 树的..原创 2022-03-24 12:56:47 · 896 阅读 · 0 评论 -
AcWing 1072. 树的最长路径(树形dp)
参考 彩色铅笔题意:在一棵全为无向边,且带边权的树中找到一条长度最大的路径并输出最大长度思路:这是一道比较经典的 树形DP 题目,我们来一步步来剖析这个问题我们知道:树上 任意两点 的路径是 唯一确定的,因此我们可以暴力枚举 起点 和 终点 找出最长路径如果这样做的话,我们来思考一下时间复杂度:枚举 起点 和 终点 — O(n2)O(n^2)O(n2)找出两点之间的路径长度 — O(logn)O(logn)O(logn)但是光是枚举 起点 和 终点,时间复杂度 就直接拉满了,..原创 2022-03-23 21:45:48 · 1227 阅读 · 0 评论 -
AcWing 846. 树的重心(树形dp雏形:树的dfs遍历)
树的深度优先遍历框架时间复杂度为:O(n + m) (n 为点数,m 为边数)使用一个bool数组记录每个节点的遍历情况,防止重复遍历void dfs(int u){ st[u]=true; // 标记一下,记录为已经被搜索过了,下面进行搜索过程 for(int i=h[u]; ~i; i=ne[i]) { int j = e[i]; if(!st[j]) dfs(j); }}题意:重心定义:重心是指树中的一个结点,如果将这..原创 2022-03-23 10:47:47 · 2017 阅读 · 2 评论 -
AcWing 292. 炮兵阵地(经典棋盘式状压dp加强版)
本题是前两道题:AcWing 1064. 小国王 和 AcWing 327. 玉米田 的增强版。题意:我们打算在一张 N × M(N行M列) 的棋盘上摆放棋子,当棋盘某一格的字符为 H,表示山地(我们用 1 表示),字符为 P,表示平原(我们用 0 表示),其中只有平原才能摆放棋子,当摆放好某个棋子后,其攻击范围是 2,“横向左右各两格,纵向上下各两格”都不能再摆放棋子。问:这个棋盘上最多能摆放多少棋子?思路:设定:从 前行 往 后行 摆放棋子,我们考虑一下,对于第 i 行的摆放方案会受哪...原创 2022-03-23 00:26:27 · 298 阅读 · 0 评论 -
AcWing 10. 有依赖的背包问题(树形dp + 分组背包)
题意每选择一个物品就应当选择其父节点,问所有选择方案能得到的最大价值是多少?思路一道 背包DP 的 变种题目根据题设的 拓扑结构 可以观察出每个 物品 的关系构成了一棵 树而以往的 背包DP 每个 物品 关系是 任意的(但我们一般视为 线性的)所以,这题沿用 背包DP 的话,要从原来的 线性DP 改成 树形DP 即可然后思考 树形DP 的 状态转移先比较一下以往 线性背包DP 的 状态转移,第 i 件 物品 只会依赖第 i−1 件 物品 的状态如果本题我们也采用该种 状态依赖关系 的...原创 2022-03-22 13:12:06 · 304 阅读 · 0 评论 -
AcWing 327. 玉米田(棋盘式状压dp 十字形)
本题与上一题AcWing 1064. 小国王(棋盘式状压dp)几乎一致。代码:#include<bits/stdc++.h>using namespace std;const int N = 14, M = 1<<N, mod = 1e8;vector<int> state;vector<int> head[M];int g[N];int m, n;int dp[N][M];bool check(int st){ for..原创 2022-03-21 22:45:29 · 508 阅读 · 0 评论 -
AcWing 1064. 小国王(棋盘式状压dp 井字形)
题意:如题。思路:题目限制:当中间摆放了一个国王之后,其相邻的 8 个格子就不能摆放了如下图当前行用什么方式摆,只和其上一行有关系,仔细想想就可以知道,其上上行无论是什么方式摆,都影响不到当前行状态表示:f[i, j, s] 三维表示集合:所有只摆在前 i 行,当前摆放了 j 个棋子,且最后一行的状态为 s 的方案集合(s 是一个二进制的数,如果棋盘有 n 列,那么 s 即为一个 n 位的二进制数,0 表示空位,1 表示摆放了 1 个棋子)属性:Count 方案数状态计算:f[i,.原创 2022-03-21 21:25:11 · 1325 阅读 · 0 评论 -
AcWing 291. 蒙德里安的梦想(棋盘式状压dp)
题意:求把N * M(1≤N,M ≤11)的棋盘分割成若干个1*2的长方形,有多少种方案。例如当N=2,M = 4 时,共有5种方案。如下图所示:当N=2,M =3时,有3种方案。如下图所示:思路:数据范围非常小,N<=11,这提示我们可能用状态压缩dp求解。本题核心:先放横着的,后放竖着的,可以发现,当把所有横着的处理完后,竖着的就只有一种填充方案,比如下图,红色部分包含两横放的方块,剩下部分直接用竖着的方块填充即可:因此,在计算方案数的时候,我们可以统计:如果我们只放横着..原创 2022-03-18 21:41:02 · 1009 阅读 · 0 评论 -
集合类状压dp:AcWing 91. 最短Hamilton路径
集合类状压dp:AcWing 91. 最短Hamilton路径原创 2022-03-17 19:03:32 · 747 阅读 · 0 评论 -
树形dp:AcWing 285. 没有上司的舞会
树形dp给定一棵N个节点的树(通常是无根树,也就是有N-1条无向边),我们可以任选一个节点为根节点,从而定义出每个节点的深度 和 每棵子树的根。在树上设计动态规划算法时,一般就以节点从深到浅(子树从小到大)的顺序作为DP的“阶段”。DP的状态表示中,第一维通常是节点编号(代表以该节点为根的子树)。大多数时候,我们采用递归的方式实现树形动态规划。对于每个节点x,先递归在它的每个子节点上进行DP,在回溯时,从子节点向节点x进行状态转移。例题:AcWing 285. 没有上司的舞会其实本题是一个原创 2022-03-17 00:02:28 · 1057 阅读 · 0 评论 -
区间dp:AcWing 282. 石子合并
区间dp到目前为止,我们介绍的 线性DP一般 从初态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态。区间DP也属于 线性DP中的一种,它以“区间长度”作为DP的“阶段”,使用两个坐标(区间的左、右端点)描述每个维度。在 区间DP 中,一个状态由若干个比它更小且包含于它的区间所代表的状态转移而来,因此 区间DP的决策往往就是划分区间的方法。区间DP 的 初态一般由长度为1的“元区间”构成。这种 向下划分、再向上递推 的模式与某些树形结构,例如 线段树,有很大的相似之处。把 区间DP作为线性DP原创 2022-03-16 12:52:33 · 574 阅读 · 0 评论 -
AcWing 1019. 庆功会(多重背包模板题)
题意一共有 n 种奖品,m 元现金对于第 i 种奖品,其 价格 为 vi,价值 为 wi,数量 为si制定一个购买 方案,使得该方案的总价值 最大思路物品个数为 n,总体积为m,初步识别是一个 背包问题观察到每个物品有 数量限制,断定该题是 多重背包问题时间复杂度:O(nms)O(nms)O(nms)代码:一维写法#include<bits/stdc++.h>using namespace std;const int N = 6010;int dp[N];in..原创 2022-03-12 11:37:28 · 746 阅读 · 0 评论 -
AcWing 1020. 潜水员(二维费用01背包问题变形)
题目描述:一共有 k 种 物品(气缸),对于第 i 种物品,第一维 费用(氧气体积) 是 v1i,第二维 费用(氮气体积) 是 v2i,价值(气缸重量) 是 wi每个物品只能 被选一次求一个 选择方案,使得第一维费用 不少于 n,第二维费用 不少于 m 且 总价值最小思路:闫氏dp分析法:状态表示dp[i,j,k]:集合:所有从前i个物品中选,且氧气含量至少是j,氮气含量至少是k的所有选法属性:所有从前i个物品中选,且氧气含量至少是j,氮气含量至少是k的所有选法的气缸重量总和的最小值...原创 2022-03-11 21:45:43 · 433 阅读 · 0 评论 -
AcWing 8. 二维费用的背包问题
#include<bits/stdc++.h>using namespace std;const int N = 110;int n, v, m;int dp[N][N];int main(){ cin>>n>>v>>m; for(int i=1;i<=n;++i) { int vv, mm, ww; cin>>vv>>mm>>ww; ...原创 2022-03-08 22:50:01 · 168 阅读 · 0 评论 -
AcWing 1021. 货币系统(完全背包求取方案数量)
题意:给定 n 种面值的货币,每种货币可以选无数个问:组成面值为 m 的货币共有多少种方案思路:这是一道 完全背包求方案数 的裸题,分析思路与上一题 AcWing 278. 数字组合 完全一致一共有 n 个物品,每个物品有体积 vi,价值 wi,每个物品能够选无数次求总体积恰好为 m 的 方案数闫氏DP分析法初始状态:f[0][0] = 1(前0个物品选出总体积恰好是0的方案数,显然为1)目标状态:f[n][m](求前n个物品选出总体积恰好是m的方案数)注意本题方案数会爆 int ..原创 2022-03-08 22:09:15 · 333 阅读 · 0 评论 -
AcWing 278. 数字组合(01背包问题求取方案数)
题意:01背包求方案数思路:闫氏dp分析法注意:初始化的时候,dp[0][0]代表从前0个物品选出总体积恰好是0的方案数,显然为1,而dp[0][1]、dp[0][2]、dp[0][3]等代表从前0个物品中选出总体积恰好是i(i=1、2、3…)的方案数,显然是不存在的,所以置为0。时间复杂度:O(nm)二维朴素代码:#include<bits/stdc++.h>using namespace std;const int N = 110, M = 1e4+10;in..原创 2022-03-07 22:53:21 · 431 阅读 · 0 评论