随笔分类 - DP
摘要:长链剖分 顾名思义就是以深度最大的儿子为长儿子做的剖分。 主要思想在于使用指针,使得同一条长链上的 dp 值共用,以达到优化空间复杂度为 ,以及优化时间复杂度。但是前提是 dp 状态中有深度这一维。 上一个例题具体分析一下。 CF1009F Dominant Indices 题目大
阅读全文
摘要:我们通过一道例题引入。 引入 CF1279F New Year and Handle Change 题目大意:给出长度为 一个01串(表现为大小写),可以最多选择 个 长度的子串,全部变为0或1。求操作后的 的最小值
阅读全文
摘要:用于优化多重背包。 对于每一种物品的可选个数,把它按照二进制拆分出来,如: 然后把这些数分别乘到大小和价值数组里面(每个数开一个)然后跑01背包即可。 因为这样的数可以拼凑出所以需要的情况。 代码实现如下: for(int i=1;i<=n;++i){ int C
阅读全文
摘要:模板题链接:P2516 HAOI2010最长公共子序列 我们借题解第一篇的巨佬的图 我们的枚举,(分别对应两个串的下标) 我们记两串分别为,记为截止到时的最长公共子序列,如果匹配成功,我们可直接用$dp[
阅读全文
摘要:突然发现自己dp极其菜,背包一个不会/kk(我没开玩笑) 那全部学一遍。 01背包 问题:n 种物品,每种物品有一个大小 ,一个价值 可以选择一个或不选,求背包容量为 m 的情况下(指所选物品大小之和小于等于m)选择的物品价值和的最大值。 我们可以设 \(f_{i,j}
阅读全文