摘要:
强连通分量 注意到一个强连通分量中 dfn 序最小的点一定有 。因此条件成立时就将自己和栈上方的点全部压入一个强连通分量中。 而如果枚举的 有 序,但其 已经不为 1 了,也就是说 已经不在栈里面了,那其已经被弹出 阅读全文
摘要:
感觉很多题解都说的不是很清楚?如何将三操作与二操作合并起来一起处理好像都没有提到。(也有可能是我太菜了,看了半天才懂) 思路 考虑这个图一定是一个广义串并联图。为什么呢? 广义串并联图的定义是不存在一个子图包含四个点且这将四个点之间的路径看作边,这四个点和路径所构成的边构成一个完全图。 显然仙人掌不 阅读全文
摘要:
动态DP是树上的、带修改的DP。修改操作一般而言用树剖加线段树加广义矩阵乘法来维护,复杂度可以达到 。 叫DDP是不知从哪里延续下来的一种神秘简称。 P4719 【模板】动态 DP 给定一颗树,每个点有权值,维护最大独立集。最大独立集指没有两个集合中的点被一条边直接相连。 阅读全文
摘要:
斜率优化是非常常见的一种DP优化方式。其代码简短、维护方法众多。其主要思想是通过维护一个凸包来辅助转移,快速找到最优的决策点。 顾名思义,“斜率”肯定和线段有联系,因此斜率优化其中一种比较无脑的方法是写李超线段树来维护凸包。其不需要管单调性等类似的限制,直接无脑写即可。 李超线段树 注意斜率优化中的 阅读全文
摘要:
题意:P1514 [NOIP 2010 提高组] 引水入城有点复杂,自己看吧。 思路 这里提供一个好像没见过的纯 DP 做法,不需要神秘的证明以及任何脑子,直接顺着思路做即可。 首先判断正确性就是从第一行的每一个点开始暴力搜索,看最后一行有没有点没被走到。最坏情况下第一行的每个点都会遍历以它自己为矩 阅读全文
摘要:
题意: 给定一棵以 1 为根的有根树,求出其所有 dfs 序中前缀最大值序列的数量。 。 思路 显然考虑 DP。 由于是求前缀最大值序列的方案数,因此如果一些点要出现在这个序列中,其到根节点上一定没有比它大的节点。 因此我们设 表示以权值为 的点为 阅读全文
摘要:
题意: \[\begin{aligned} &\text{给定长度为 } n \text{ 的数列 } \{a_i\} \text{ 和两个参数 } k, s \text{,将 } \{a_i\} \text{ 划分为 } k \text{ 段,最大化和} \geq s \text{ 的段数。} \ 阅读全文
摘要:
题意: 给定一棵无根树,要求给树上 个点标记,使得所有点都至少与一个被标记的点相邻。(注意自己被标记不代表与标记相邻) 思路 考虑树形DP。 套路地设 表示树上的点 及其子树内已经被标记了 个点,自己有没有被标记、自己有没有 阅读全文
摘要:
题意: 有点复杂,看 原题面 吧。 思路 发现可以等价为两个人独立操作操作出来的序列相同的方案数。 然后发现复杂度阈值可以接受 ,因此直接套路地设 表示两个人操作了 次后第一个人操作了第一个管道 次,第二个人操作了第一个管道 \(j\ 阅读全文