随笔分类 - [C++]动态规划-背包DP
摘要:题面 "Bzoj" "洛谷" 题解 这种求比值最大就是$0/1$分数规划的一般模型。 这里用二分法来求解最大比值,接着考虑如何$check$,这里很明显可以想到用树形背包$check$,但是时间复杂度要优化成$O(n^2)$的,可以参考之前写的这篇 "博客"
阅读全文
摘要:树形背包的一般形式 给定一棵有$n$个节点的点权树,要求你从中选出$m$个节点,使得这些选出的节点的点权和最大,一个节点能被选当且仅当其父亲节点被选中,根节点可以直接选。 $n^3$解法 原理 考虑设$f[u][i]$表示在$u$的子树中选择$i$个节点(包括它本身)的最大贡献,则可列出以下转移方程
阅读全文
摘要:1.1 前言 多重背包,想必看到这篇博文的人应该都知道了,这里仅仅列出伪代码($n$为物品个数,$m$为背包容积) 显然,这种算法的复杂度是很不可取的,于是我们来考虑优化 1.2 优化方式 设$c,v,w$分别为当前物品的个数,体积,价值,根据原始转移方程可知,$f_i$一定是由$f_{
阅读全文

浙公网安备 33010602011771号