4.7

CF1648D

设 为从 到 的最小代价。答案为 。

前面线段树维护 dp 值,按转移顺序区间 max,单点查。后面从后往前枚举 ,不断加入区间,维护 。另一个线段树分别维护 。

CF1949F

不合法情况要么完全包含要么不交,建立树形结构。按 大小从小到大排序。实时记录每个爱好 对应的最后的人 。枚举 的每个爱好 ,如果最后不合法意味着每个 的爱好都被 完全包含,否则找到一组解。如果最后不合法,所有 的爱好数之和为 。

4.16

CF1951F

对于 ,如果 >p_j120\frac{k−inv(p)}{2}$ 。

abc348g

有决策单调性,主席树上二分。

4.18

CF1542E2

枚举前 位相同, 且 。逆序对数的差异只与后 的排列有关。 表示 个数有 个逆序对。

记 。

记 。

记 。

abc349g

abc349g 题解

最直接的就是并查集倍增将两段区间并起来。

可以用类似马拉车的思路得到一个贪心算法。枚举 ,用 记录 不能是 ,维护 表示当前已知 。如果 就把 更新到 ,否则什么也不做。最后在 hash 判断所有 是不是都满足条件。

4.19

P3380

线段树套 FHQ,查询排名为 时二分再查询 的排名,复杂度 。

权值线段树套 FHQ,FHQ 维护位置,查询排名为 时线段树上二分,复杂度 。

P7831

拓扑排序转移。当当前是环是拆开 最大的边。

CF1778E

按 dfn 序,前缀线性基或合并前后缀线性基。

arc173e

观察到:只能选偶数个,且当 时不能全选。

线性基选偶数个数:插入 。

4.23

P4839

猫树分治,维护 的前缀线性基和 的后缀线性基。在 跨越 时合并。复杂度 。

P5607

维护差分数组。区间 的线性基等价于 和 的线性基。

P10282

。对 往后的转移按平均值从小到大,一边前缀和一边双指针。

4.25

P6134

如果删去边 后 到 的路径依然存在,那就删去。bitset 维护可达性。

P3733

先找出最小生成树,线段树分治其他的边,套上线性基维护每个环的最大异或值,见 [WC2011] 最大XOR和路径。

CF938G

P3733 加强。不一定存在一直存在的生成树。线段树分治。记录每个点的父亲和到父亲的边权。对边 ,如果 在同一个联通块,加入线性基;否则 和 连 。

4.26

CF875F

连二选一的两个点,最多允许存在基环树,求最大生成基环树。

CF1666K

每个点拆为 ,最小割, 表示 ,否则 ; 表示 ,否则 。00 或 11 表示 。

P10371

每个数维护 表示左右第一个、第二个大于 的位置。分类讨论 或 。

4.28

P7497

线段树维护区间未封个数,未封之和,封了的和,封的次数。封过的区间不参与上传下放,解封时从下面上传。

4.30

agc033d

的答案,复杂度 。

注意到答案小于 。交换维度。 表示答案为 , 到 最大。

维有单调性,双指针。

P7864

结论:一个点存在两个叶子则必胜。

CF1091H

只与和中间点的距离有关, 个 sg 值亦或起来。

发现 sg 值不大,记 为 的后继有 sg 值为 的。预处理素数,bitset 转移。