拆贡献,对于所有 $0\leq p_i\leq|S_i|$ 求所有 $10^{\sum p_i}\prod S'_{i,p_i}$ 的和。
考虑将最开始在的设为黑点,剩余为白点。黑白点分别内部都是等价的,最终只关心在算贡献的还有多少黑点,设计一个 dp 状态是容易转移的,可以矩阵快速幂优化,求出 $coef_m$ 表示最终保留 $m$ 个黑点以及 $n-m$ 个白点的方案数。由于无区别,黑白每种组合出现次数都是相同的。
考虑 $s_{i,p_i}$ 设为集合 $C$,最终被算入乘积贡献的是集合 $P$,那么就要关心 $A=C\cap P$ 以及 $B=(U-C)\cap P$。每行限制是恰好选一个 $C$。$dp_{i,j}$ 记录当前 $|A|=i,|B|=j$,再卷积上每行的贡献 $F_{0/1,k}$:表示该行选了 $k$ 个 $B$,以及这一行的 $C$ 是否对乘积有贡献。最终 $ans=\sum dp_{i,n-i}coef_i\frac{1}{\binom{n}{i}\binom{sum-n}{n-i}}$。
求 $F$:对于字符集分开,设中间状态记录当前的 $|B|$,是否选取该行的 $C$,以及若选取那么是否选入 $P$ 中。
时间复杂度 $\mathcal O(n^3\log k+\sum|S_i|+n^4+n^3|\Sigma|),|\Sigma|=10$。