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$