入门 Trick
两组不交匹配问题
找到 \(l_1, r_1, l_2, r_2\; s.t.\; l_1\leqslant l_2 < r_1 \leqslant r_2\),使得满足某些性质。
解法:对于每个数维护向左/右的最优匹配,最后枚举 \(l_2\) 与 \(r_1\) 的中间点,两边 \(O(1)\) 或 \(O(\log n)\) 找最优即可。
【一本通提高篇Trie字典树】Codechef REBXOR
平均数与常数比大小问题
给定一个数组 \(v\) 和常数 \(k\),求 \(v\) 中有多少连续段平均数大于 \(k\)。
令前缀和为 \(sum\),则原数组中 \(l\) 到 \(r\) 的成立条件为 \(sum_r - sum_l - 1 \geqslant k \times (r - l + 1)\),右边不是定值。
只需将 \(v\) 的所有值全部减 \(k\),再判断字段和是否为正即可。
树上异或路径
边 \((u, v)\) 的路径异或和为 \((1, u), (1, v)\) 的路径异或和的异或和。
【一本通提高篇Trie字典树】The xor-longest Path
断边/点来满足性质
给定一个图(树也可以做,但是树一搬有 dp 做法),要求断一些边,来满足某些性质。
把断边变成连边,用数据结构(一般情况并查集即可)维护联通快即可。

浙公网安备 33010602011771号