• 子集计数


    题目描述

    求在集合 {(1,2,3,...,n)} 中选一个大小为 (m) 的子集,子集和在模 (n) 意义下为 (k) 的方案模 (998244353)
    (1le m,kle nle 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 [nmid(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 igstar ]

    考虑分圆多项式的根

    [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) ]

    用上式去代入 (igstar) 式,

    [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} ight floor} [frac{n}{de}mid k] ]

    暴力即可。

  • 相关阅读:
    distcc加速内核编译
    ssh不检查server变化
    bbb u-boot SPI 启动
    Debian NAT共享上网
    Debian Epson L455 打印机
    Learn CMake's Scripting Language in 15 Minutes (ZZ)
    网络启动并安装Debian
    GNU LD 脚本学习笔记
    JLink defective
    获取真实mac地址
  • 原文地址:https://www.cnblogs.com/bestwyj/p/11187775.html
Copyright © 2020-2023  润新知