子集计数

题目描述

求在集合 {\(1,2,3,...,n\)} 中选一个大小为 \(m\) 的子集,子集和在模 \(n\) 意义下为 \(k\) 的方案模 \(998244353\)
\(1\le m,k\le n\le 998244353\)

神仙反演

Orz yww
首先写出答案的二元生成函数

\[F(x,y)=\prod_{i=1}^{n}(1+x^iy) \]

那么我们最终要求的即

\[Ans=\sum_{i=1}^\infty [i\%n==k]F(x,y)[x^iy^m] \]

不难想到单位根反演:

\[Ans=\sum_{i=1}^\infty [n\mid(i-k)]F(x,y)[x^iy^m]\\ =\frac{1}{n}\sum_{i=1}^\infty \sum_{j=1}^nw_n^{j(i-k)} F(x,y)[x^iy^m] \]

稍加整理可知

\[Ans=\frac{1}{n}\sum_{j=1}^nw_n^{-jk}(\prod_{i=1}^n(1+w_n^{ij}y)[y^m]) \]

(不知道为何)枚举 \(gcd(n,j)=d\)

\[Ans=\frac{1}{n}\sum_{d|n}\sum_{j=1}^{n/d}[(j,\frac{n}{d})=1]w_n^{-jdk}(\prod_{i=1}^n(1+w_n^{ijd}y)[y^m]) \]

注意到单位根的幂它的右上和右下是可以通分的,那么我们进行操作,

\[Ans=\frac{1}{n}\sum_{d|n}\sum_{j=1}^{n/d}[(j,\frac{n}{d})=1]w_{n/d}^{-jk}(\prod_{i=1}^n(1+w_{n/d}^{ij}y)[y^m])\\ =\frac{1}{n}\sum_{d|n}\sum_{j=1}^{n/d}[(j,\frac{n}{d})=1]w_{n/d}^{-jk}(\prod_{i=1}^{n/d}(1+w_{n/d}^{ij}y))^d[y^m] \qquad \bigstar \]

考虑分圆多项式的根

\[x^n-1=\prod_{i=1}^n(x-w_n^i) \]

\(x=-\frac{1}{y}\) 代入上式,

\[(-\frac{1}{y})^n-1=\prod_{i=1}^n(-\frac{1}{y}-w_n^i)\\ 1-(-y)^n=\prod_{i=1}^n(1+w_n^iy) \]

用上式去代入 \(\bigstar\) 式,

\[Ans=\frac{1}{n}\sum_{d|n}\sum_{j=1}^{n/d}[(j,\frac{n}{d})=1]w_{n/d}^{-jk}(1-(-y)^{\frac{n}{d}})^d[y^m]\\ =\frac{1}{n}\sum_{d|n}(1-(-y)^{\frac{n}{d}})^d[y^m]\sum_{j=1}^{n/d}[(j,\frac{n}{d})=1]w_{n/d}^{-jk} \]

对后面的方括号莫比乌斯反演,

\[Ans=\frac{1}{n}\sum_{d|n}(1-(-y)^{\frac{n}{d}})^d[y^m]\sum_{e|\frac{n}{d}}\mu(e)\sum_{j=1}^{n/de}w_{n/d}^{-jek}\\ =\frac{1}{n}\sum_{d|n}(1-(-y)^{\frac{n}{d}})^d[y^m]\sum_{e|\frac{n}{d}}\mu(e)\sum_{j=1}^{n/de}w_{n/de}^{-jk} \]

注意到最后一个求和号是单位根反演出来的形式,故拼凑回去得:

\[Ans=\frac{1}{n}\sum_{d|n}(1-(-y)^{\frac{n}{d}})^d[y^m]\sum_{e|\frac{n}{d}}\mu(e) {\left \lfloor \frac{n}{de} \right \rfloor} [\frac{n}{de}\mid k] \]

暴力即可。

posted @ 2019-07-15 11:19  bestwyj  阅读(601)  评论(0)    收藏  举报