LOJ3120「CTS2019 | CTSC2019」珍珠
只是想要祭奠做的时候死去的我
约定下文中的\(d\)为题目中的\(D\)
Part1
先从最最暴力的定义转移(可以跳过这个)
\(S\)表示个数为奇数的颜色集合
转移多项式(集合幂指数)\(F(x)=\sum_0^d x^{\{i\}}\)
\(\text{FWT}\)得到
\(F'(x)=\sum (d-2|S|)x^S\)
\((F(x)^n)'=\sum (d-2|S|)^nx^S\)
\(\text{IFWT}\)得到
$2^d F(x)^n=\sum_S \sum_T (-1)^{|S\cap T|}(d-2|T|)^n x^{S} $
答案就是
\(2^d Ans=\sum_S\sum_T(-1)^{|S\cap T|}(d-2|T|)^n[|S|\leq Lim]\)
如果枚举\(|S|,|T|,|S\cap T|\)进行统计,会出现3个元,无法直接优化到\(O(n\log n)\)
Part2
设最后得到每一种颜色的个数为\(c_i,\sum c_i=n\)
方案数就是\(\frac{n!}{\Pi c_i!}\),很符合指数型生成函数吧
考虑最朴素的生成函数表示法,考虑每种颜色的选的个数
个数无限制的生成函数\(F_0(x)=\sum \frac{x^i}{i!}=e^x\)
个数为奇数的生成函数\(F_1(x)=\frac{x^{1}}{1!}+\frac{x^{3}}{3!}+\cdots=\frac{e^x-e^{-x}}{2}\)
个数为偶数的生成函数\(F_2(x)=\frac{x^0}{0!}+\frac{x^2}{2!}+\cdots=\sum \frac{e^x+e^{-x}}{2}\)
\(F_1^i=2^{-i}\sum (-1)^jC(i,j)e^{(i-2j)x}\)
\(F_2^i=2^{-i}\sum C(i,j)e^{(i-2j)x}\)
设选中\(i\)个奇数的答案为\(G_i\)
\(G_i=n!C(n,i)[x^n]F_1^iF_2^{d-i}\)
\(=n!C(n,i)[x^n]2^{-d}\sum_j\sum_k C(i,j)(-1)^je^{(i-2j)x} C(n-i,k)e^{(n-i-2k)x}\)
代\(e^{ax}=\sum \frac{(ax)^i}{i!}\),约去\(n!\)
\(=C(n,i)[x^n]2^{-d}\sum_j\sum_k C(i,j)C(n-i,k)(-1)^j (n-2k-2j)^n\)
诶好像和Part1一样。。。
暴毙结束。。。。
Part3
上面这两种方法都要枚举三个元,无法优化,所以考虑先重复计算,再容斥掉
计算\(\ge i\)个方案数,然后容斥回去
设最终答案序列为\(H\)
我们可以快速求出选中\(i\)个奇数且带重复的方案数\(G_i\)
\(G_i=\sum C(j,i)H_j=[x^n]C(d,i)F_1(x)^iF_0(x)^{d-i}\)(强制选\(i\)个剩下未知)
\(G_i=C(d,i) \cdot n! \cdot [x^n]\sum (-1)^je^{(d-2j)x}\cdot C(i,j)\cdot {2^{-i}}\)
代\(e^{ax}=\sum \frac{(ax)^i}{i!}\),约去\(n!\)
\(G_i=C(d,i) \cdot \sum (-1)^j(d-2j)^n\cdot C(i,j)\cdot {2^{-i}}\)
卷积一次可以得到\(G\)
最后的容斥就是二项式反演
\(H_i=\sum_{j\ge i}(-1)^{j-i}G_jC(j,i)\)
再卷积求出\(H\)