20250906
Mountain Climbing
https://www.luogu.com.cn/problem/P1561
往模拟赛放这题的,和往小学组放这题的,都该【】了。
一个想法是二分第一个牛开始下山的时刻,然后让牛不间断地上山,不间断地下山。
那么贪心先放 \(b - a > 0\) 的扩大后面对于上山容许的最大时间,再放 \(b - a < 0\) 的。\(> 0\) 的内部,再考虑 \(a\) 从小到大。然后后半部分由对称性应当是 \(b\) 从大到小。
发现顺序确定了不需要二分,直接 \(O(n \log n)\) 即可。
Horrible Cycles
对 \(a\) 从小到大排序。
有两种做法,一种只考虑左部点,同时需要记有多少条边(阶梯计数)和多少条链(放哪里),\(O(n^3)\) 过不去。(场上做法,没调出来。sz051 也使用了这一做法。)
另一种做法,考虑上右部点,每一条链两端都是右部点。每次先加入 \(a_i - a_{i - 1}\) 个右部点,然后把点合并成链。因为需要确定链的方向,答案最后需要 \(/2\)。注意合成环的时候不能对孤立点进行操作,所以每次加入答案时减去 \(a_i\)。
序列拆分
CF758F Geometrical Progression + 矩阵快速幂。
https://codeforces.com/contest/758/problem/F
对于 \(n \ge 3\) 的情况,枚举公比 \(p/q\),需要保证 \(\gcd(p, q) = 1\),然后 \(p\) 和 \(q\) 不能超过 \(\sqrt V\),预处理可以 \(O(V \log V)\)。据说有一些方法可以做到 \(O(V)\)。
123 vs 321
gugugu。

浙公网安备 33010602011771号