专栏文章

P13275

P13275题解参与者 5已保存评论 6

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
6 条
当前快照
1 份
快照标识符
@miotqqb7
此快照首次捕获于
2025/12/03 01:00
3 个月前
此快照最后确认于
2025/12/03 01:00
3 个月前
查看原文
写出答案式子:
PQ[f(P)=f(Q)][PQ=]iPQai\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)][f(P)=f(Q)] 限制进行容斥:即对于每一位 xx 应有 [xf(P)]=[xf(Q)][x\in f(P)]=[x\in f(Q)] 成立,记 Px=[xf(P)],Qx=[xf(Q)]P_x=[x\in f(P)],Q_x=[x\in f(Q)]
则:
[f(P)=f(Q)]=0i<n[Pi=Qi]=0i<n((PiQi)+(¬Pi¬Qi))=0i<n(1(¬PiQi)(Pi¬Qi))=0i<n(1(QiPiQi)(PiPiQi))=0i<n(2PiQiPiQi+1)=Af(P)f(Q)Bf(P),AB=Cf(Q),AC=,BC=2A(1)B+C=Sf(P)Tf(Q)2ST(1)(SST)+(TST)=Sf(P)Tf(Q)2ST(1)S+T\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=BA,T=CAS=B\cup A,T=C\cup A。从而答案为:
PQ[PQ=]Sf(P)Tf(Q)(1)S+T2STiPQai=ST(1)S+T2STSf(P)Tf(Q)[PQ=]iPQai\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,QP,Q 可以取到的集合:P,QP,Q 分别为所有是 S,TS,T 超集的数构成集合(分别记为 AS,ATA_S,A_T)的子集;枚举 R=PQASATR=P\cup Q\subseteq A_S\cup A_T,则对于 iRi\in R,若 iASATi\in A_S\cap A_T 则可将 ii 任意分配 P/QP/Q 否则 ii 属于 P/QP/Q 是确定的,即答案为:
ST(1)S+T2STRASATiR(1+[iASAT])ai=ST(1)S+T2ST(R1ASATiR12ai)(R2ASAT(ASAT)iR2ai)=ST(1)S+T2ST(iASAT(2ai+1))(iASAT(ASAT)(ai+1))\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}
fS=ST(aT+1),gS=ST(2aT+1)f_S=\prod\limits_{S\subseteq T} (a_T+1),g_S=\prod\limits_{S\subseteq T} (2a_T+1),则答案为:
ST(1)S+T2STfSfTgST(fST)2\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}
fSf_SgSg_S 均可以高维后缀积计算,复杂度 O(n2n)\mathcal{O}(n2^n),则此时暴力算上面的式子就可以得到一个 O(4n)\mathcal{O}(4^n) 的做法;然而存在问题:会出现 /0/0 的情况。处理很简单:记录 fS,gS=a0kf_S,g_S=a\cdot0^k 即可,乘除均有良定义。
注意到 ST+ST=S+T|S\cap T|+|S\cup T|=|S|+|T|,将答案按 S/T/STS/T/S\cup T 整理得:
ST((2)SfS)((2)TfT)gST(fST)22ST\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|}}
f^S=(2)SfS\hat{f}_S=(-2)^{|S|}f_S,得 h=f^×f^h=\hat{f}\times \hat{f},则答案为:(此处乘法是 or 卷积)
ShSgSfS22S\sum\limits_S h_S\frac{g_S}{f_S^22^{|S|}}
复杂度 O(n2n)\mathcal{O}(n2^n)
仍然存在问题:f^\hat{f}ff 一样是 a0ka\cdot 0^k 形式保存,而 a10k1a_1\cdot 0^{k_1}a20k2a_2\cdot 0^{k_2} 加减法若 k1k2k_1\ne k_2 是没有良定义的(除非维护关于 00 的多项式),但是发现最终非最低位在除以 fS2f_S^200 的次数必然 >0>0,从而可以直接舍去,即保留 00 次数较低的项即可。

评论

6 条评论,欢迎与作者交流。

正在加载评论...