LOJ3120「CTS2019 | CTSC2019」珍珠
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\)