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\)

posted @ 2026-01-11 23:08  yemuzhe  阅读(48)  评论(0)    收藏  举报