QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2026-04-05 16:29:23

Last updated: 2026-04-05 16:29:26

Back to Problem

题解

观察:在十进制下,从低位数的所有偶数位($10^0,10^2,\ldots$)的贡献是 $1$,所有奇数位的贡献是 $-1$,所以一个数模 $11$ 为 $0$ 当且仅当在模 $11$ 的意义下,奇数位的总和等于偶数位的总和。

先忽略首位非 $0$ 的限制,只需要再减去首位为 $0$ 的情况即可。设位数是 $N$,数字 $i$ 的出现次数是 $c_i$,数位和为 $s$,则要计算的就是 $$ \left\lceil\frac{N}{2}\right\rceil!\left\lfloor\frac{N}{2}\right\rfloor!\left[x^{\left\lfloor\frac{N}{2}\right\rfloor}y^{\frac{s}{2}\bmod 11}\right]\prod_{i=0}^{9}\left(\frac{1}{c_i!}\left(1+xy^i\right)^{c_i}\right)\bmod (y^{11}-1) $$ 注意我们先认为相同的数字是可以区分的,所以最后要除以 $c_i!$。模 $y^{11}-1$ 是因为总和是在模 $11$ 的意义下考虑的。

令 $F_i(x,y)=1+xy^i$,则关键的部分是求 $F(x,y)=\prod_{i=0}^9F_i(x,y)^{c_i}$。考虑对 $x$ 这一维递推,也就是对 $x$ 求导得到 $$ \frac{\partial F}{\partial x}=\sum_{i=0}^9 \frac{\partial F_i^{c_i}}{\partial x}\prod_{j\ne i}F_j^{c_j}=\sum_{i=0}^9c_i \frac{F}{F_i}\frac{\partial F_i}{\partial x}=\sum_{i=0}^9\frac{c_iy^iF}{1+xy^i} $$ 我们只需要同时维护 $F$ 和所有的 $\frac{c_iy^iF}{1+xy^i}$ 即可在 $O(10^2N)$ 的时间复杂度内计算答案。注意朴素实现的空间复杂度也为 $O(10^2N)$,但我们在递推中只需要保留最近的一项,可以优化空间到 $O(10^2)$。

Comments

No comments yet.