QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: alpha1022

Posted at: 2026-01-28 02:15:21

Last updated: 2026-01-28 02:15:47

Back to Problem

题解

简要题意.

给定长为 $n$ 的整数序列 $a_1, a_2, \dots, a_n$ 和 $b_1, b_2, \dots, b_n$。
每个时刻你需要执行操作:选定下标 $i, j$ $(i < j)$,将 $a_i \gets a_i+1$,$a_j \gets a_j+1$,但需要保证任意时刻 $a$ 中的数两两不同。
问得到 $b$ 的方案数。

$n \le 30$,$a_i, b_i \le 200$。

自然 $a$ 和 $b$ 的排列顺序要相同,且 $\sum a_i - \sum b_i$ 是偶数。于是不妨设 $a_1 < a_2 < \dots < a_n$,$b_1 < b_2 < \dots < b_n$,令 $t = (\sum a_i - \sum b_i)/2$。

据 LGV 引理,考虑先算出忽略互不相同的方案数,然后通过带符号求和算出答案。

令 $d_i = b_i - a_i$,那么方案数只跟此序列相关。考虑数出有 $2t$ 次操作的方案数,要求 $2k-1$ 次与 $2k$ 次不同,然后除以 $2^t$。这自然考虑容斥,枚举 $c_i$ 表示有 $c_i$ 对 $(2k-1,2k)$ 同时操作了 $i$,就是

$$ \sum_{0 \le c_i \le d_i/2} (-1)^{\sum c_i} \binom{t}{c_1, c_2, \dots, c_n, t-\sum c_i} \binom{2\left(t-\sum c_i\right)}{d_1 - 2c_1, d_2 - 2c_2, \dots, d_n - 2c_n} $$

套路地,枚举 $\sum c_i$ 统计答案,即可表为 $n$ 个仅与 $d_i$ 相关的多项式的卷积的系数的线性组合: $$ 2^{-t}t! \sum_{s\ge 0} \frac{[2(t-s)]!}{(t-s)!} [x^s] \prod_{i=1}^n \sum_{0\le j \le d_i/2} \frac{(-x)^j}{j!(d_i-2j)!} $$

记为 $F_{d_i}(x)$。

考虑带上符号求和,显然只需要构造矩阵 $M_{i,j} = F_{b_j-a_i}(x)$,计算 $\det M$ 系数的线性组合即可。由于卷积的代价比较高,所以考虑代入点值再插值得到多项式。时间复杂度 $O(n^4 \max b_i + n^2 (\max b_i)^2)$。

Comments

No comments yet.