随笔分类 - C++_DP
摘要:一些博客 一个比较完整的总结 带权二分 决策单调性 未来费用区间DP 做题记录 SCOI2010 股票交易 设 表示第 天拥有 张股票的最大收益,不难发现,每一天都不会即买入又卖出,于是就会有三种情况: 不买不卖:\(f[i][j]=f[i-1][j]
阅读全文
摘要:题意 给定一个序列,一些位置未确定(是与的几率各占)。对于一个序列,连续长度的会得到的收益,请问最终得到的序列的期望收益是多少? 算法 期望DP 思路 一段一段地处理其实并不方便,因为我们并不知道一段连续的长度(它会随着你的选择而变化)。 于
阅读全文
摘要:思路 ,一看就很状压。 设为当前状态为(二进制下第位为时表示选了第个),最后一个选了时的最大满意度(记录是为了计算吃菜顺序的额外贡献),则有: $$ f_{st,i} = max(f_{pre,j} + a_i +
阅读全文
摘要:思路 首先,我们根据题意建树,并给边附上权值:原有的边权值为,反向边权值为,代表走这条边所需代价。 第一次,钦定为根,我们可以求出以为根的答案。 第二次,考虑根由转移到时答案会怎么变。 若到的边权为,那么一开始我们是从到
阅读全文
摘要:题意补充 事实上,每次能染的个节点并不一定与所在节点相邻,换言之,可以提前染一些节点使得以后走不到。 数据范围: 算法 二分答案 + 树形DP 思路 二分每次染的节点个数,再用树形DP检查; 设为以节点为
阅读全文
摘要:题意 中文题面,不再赘述 算法 树形DP + 贪心乱搞 思路 所有无法描述的正解都是贪心算法 不过这道题还是可以感性理解的 设为以为根的子树内最大毛毛虫的大小(尽管答案并不可以由它直接得出),则: $$ f_u = max(f_v) + 1 + min(siz_u - 1, 0) \
阅读全文
摘要:树形依赖背包 一般形式:给定一颗个节点的点权树,要求选出个节点使得这些选出的节点的点权和最大,一个节点能选当且仅当其父亲节点被选中,根节点能直接选。 一般解法: 用表示在的子树中选择个节点(包括本身)的最大价值,转移方程为:\(f_{u,i} = max(f
阅读全文
摘要:题意 合并一堆数,每次合并相加或相乘(题目已给出),设计合并顺序使得最终答案最大 其实就是一个区间DP 设的最大价值 加法很好写:\(f_{i, j} = max_{k \geq i}^{k < j}{(f_{i, k} + f_{k + 1, j})
阅读全文