arc212
A
可以把边 \((1, 2)\)、\((3, 4)\) 分成一组,边 \((2, 3)\)、\((1, 4)\) 分成一组,边 \((1, 3)\)、\((2, 4)\) 分成一组。
设每组边权之和为 \(x, y, z\),方案数为 \((x - 1)(y - 1)(z - 1)\),故对答案贡献为 \((K - \max \{x, y, z\})(x - 1)(y - 1)(z - 1)\)。
B
手模一下发现这是一个最短路模型,对于 \(i \ge 2\) 连边 \((x _ i, y _ i, z _ i)\),然后答案就是 \(y _ 1\) 到 \(x _ 1\) 的最短路。
C
令 \(x _ i = |a _ i - b _ i|\),首先枚举 \(k = \sum x _ i\),然后
-
\(a _ i\) 更大还是 \(b _ i\) 更大有 \(2 ^ M\) 种方案。
-
把剩下 \(N - k\) 分配到每对 \(a _ i, b _ i\) 方案数为 \(\displaystyle \binom {(N - k) / 2 + N - 1} {N - 1}\)(插板法)。
-
\(\prod x _ i\) 之和,考虑其组合意义,先把所有 \(x _ i\) 同时加上 1,然后在 \(x _ i\) 与 \(x _ {i + 1}\) 之间插板,\(x _ i\) 内部也插一个板表示方案数乘上 \((x _ i - 1)\)。所以有 \(k + N - 1\) 个空和 \(2M - 1\) 个板,方案数为 \(\displaystyle \binom {k + N - 1} {2M - 1}\)。这个用 OGF 也容易推出同样的结果。
三个式子乘一起就可以了。
D
非常困难的一道题。定义势能函数 \(\Phi = \sum _ {i, j \in X} A _ {i, j} + \sum _ {i, j \in Y} A _ {i, j}\),每次把一个状态不佳的人换一个房间,势能一定会增加。
E
最大值在中间的情况启发我们去想笛卡尔树分治。记 \(f (l, r)\) 表示只考虑区间 \([l, r]\) 的方案数,\(p\) 为 \([l, r]\) 中最大值的位置。
对于 \(l = 1, r = n\) 的原始情况,\(p\) 两边的取法是独立的,故答案为 \(ans _ 0 = f (l, p - 1) \times f (p + 1, r) \times \binom {r - l} {p - l}\)。
对于 \(l > 1\) 的情况,\([l, p)\) 取完后 \(p\) 也可以取,考虑把 \(p\) 绑定到 \([l, p)\) 中最后一个取的元素的后面,合并有 \(\binom {r - l + 1} {p - l + 1}\) 种方法。
对于 \(r < n\) 的情况同上。
但是发现 \(l > 1\) 且 \(r < n\) 时会算重,于是这种情况再扣掉一个 \(ans _ 0\) 即可。
F
观察到 \(A _ {n - 2} = |A _ n - A _ {n - 1}|\),又 \(A _ N = X\),故枚举 \(A _ {N - 1}\),可以类似欧几里得算法在单 \(\log\) 时间内往前推出 \(A _ 1, A _ 2\)。

浙公网安备 33010602011771号