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 转移。