P13275

· · 题解

写出答案式子:

\sum\limits_P \sum\limits_Q [f(P)=f(Q)][P\cap Q=\emptyset]\prod\limits_{i\in P\cup Q} a_i

[f(P)=f(Q)] 限制进行容斥:即对于每一位 x 应有 [x\in f(P)]=[x\in f(Q)] 成立,记 P_x=[x\in f(P)],Q_x=[x\in f(Q)]

则:

\begin{aligned} [f(P)=f(Q)] & = \prod\limits_{0\le i<n} [P_i=Q_i]\\ & = \prod\limits_{0\le i<n} ((P_i\wedge Q_i)+(\neg P_i\wedge\neg Q_i))\\ & = \prod\limits_{0\le i<n} (1-(\neg P_i\wedge Q_i)-(P_i\wedge\neg Q_i))\\ & = \prod\limits_{0\le i<n} (1-(Q_i-P_i\wedge Q_i)-(P_i-P_i\wedge Q_i))\\ & = \prod\limits_{0\le i<n} (2P_i\wedge Q_i-P_i-Q_i+1)\\ & = \sum\limits_{A\subseteq f(P)\cap f(Q)}\sum\limits_{B\subseteq f(P),A\cap B=\emptyset} \sum\limits_{C\subseteq f(Q),A\cap C=\emptyset,B\cap C=\emptyset} 2^{|A|}(-1)^{|B|+|C|}\\ & = \sum\limits_{S\subseteq f(P)} \sum\limits_{T\subseteq f(Q)} 2^{|S\cap T|}(-1)^{(|S|-|S\cap T|)+(|T|-|S\cap T|)}\\ & = \sum\limits_{S\subseteq f(P)} \sum\limits_{T\subseteq f(Q)} 2^{|S\cap T|}(-1)^{|S|+|T|} \end{aligned}

其中倒数第二步为枚举 S=B\cup A,T=C\cup A。从而答案为:

\begin{aligned} & \sum\limits_P\sum\limits_Q[P\cap Q=\emptyset]\sum\limits_{S\subseteq f(P)}\sum\limits_{T\subseteq f(Q)}(-1)^{|S|+|T|}2^{||S\cap T|}\prod\limits_{i\in P\cup Q} a_i\\ = & \sum\limits_S\sum\limits_T(-1)^{|S|+|T|}2^{|S\cap T|}\sum\limits_{S\subseteq f(P)}\sum\limits_{T\subseteq f(Q)}[P\cap Q=\emptyset]\prod\limits_{i\in P\cup Q} a_i \end{aligned}

考察 P,Q 可以取到的集合:P,Q 分别为所有是 S,T 超集的数构成集合(分别记为 A_S,A_T)的子集;枚举 R=P\cup Q\subseteq A_S\cup A_T,则对于 i\in R,若 i\in A_S\cap A_T 则可将 i 任意分配 P/Q 否则 i 属于 P/Q 是确定的,即答案为:

\begin{aligned} & \sum\limits_S\sum\limits_T(-1)^{|S|+|T|}2^{|S\cap T|} \sum\limits_{R\subseteq A_S\cup A_T}\prod\limits_{i\in R} (1+[i\in A_S\cap A_T])a_i\\ = & \sum\limits_S\sum\limits_T(-1)^{|S|+|T|}2^{|S\cap T|} \left(\sum\limits_{R_1\subseteq A_S\cap A_T} \prod\limits_{i\in R_1} 2a_i\right) \left(\sum\limits_{R_2\subseteq A_S\cup A_T\setminus(A_S\cap A_T)} \prod\limits_{i\in R_2} a_i\right)\\ = & \sum\limits_S\sum\limits_T(-1)^{|S|+|T|}2^{|S\cap T|} \left(\prod\limits_{i\subseteq A_S\cap A_T} (2a_i+1)\right) \left(\prod\limits_{i\subseteq A_S\cup A_T\setminus(A_S\cap A_T)} (a_i+1)\right) \end{aligned}

f_S=\prod\limits_{S\subseteq T} (a_T+1),g_S=\prod\limits_{S\subseteq T} (2a_T+1),则答案为:

\sum\limits_S\sum\limits_T(-1)^{|S|+|T|}2^{|S\cap T|}f_Sf_T\frac{g_{S\cup T}}{(f_{S\cup T})^2} 注意到 $|S\cap T|+|S\cup T|=|S|+|T|$,将答案按 $S/T/S\cup T$ 整理得: $$ \sum\limits_S\sum\limits_T\left((-2)^{|S|}f_S\right)\left((-2)^{|T|}f_T\right)\frac{g_{S\cup T}}{(f_{S\cup T})^22^{|S\cup T|}} $$ 令 $\hat{f}_S=(-2)^{|S|}f_S$,得 $h=\hat{f}\times \hat{f}$,则答案为:(此处乘法是 or 卷积) $$ \sum\limits_S h_S\frac{g_S}{f_S^22^{|S|}} $$ 复杂度 $\mathcal{O}(n2^n)$。 仍然存在问题:$\hat{f}$ 与 $f$ 一样是 $a\cdot 0^k$ 形式保存,而 $a_1\cdot 0^{k_1}$ 和 $a_2\cdot 0^{k_2}$ 加减法若 $k_1\ne k_2$ 是没有良定义的(除非维护关于 $0$ 的多项式),但是发现最终非最低位在除以 $f_S^2$ 后 $0$ 的次数必然 $>0$,从而可以直接舍去,即保留 $0$ 次数较低的项即可。