• 第一二类斯特林数及斯特林反演


    第一类斯特林数

    符号为(egin{bmatrix} n\ m end{bmatrix}),定义是把(n)个数排成(m)个圆排列的方案数,递推式为(把第一类斯特林数简记为(S_1(n,m))):

    [S_1(n,m)=S_1(n-1,m-1)+(n-1)S_1(n-1,m) ]

    其中边界为
    1.(S_1(0,0)=1)
    2.(S_1(n,k)=0(k>n))
    这个递推式可以如此理解:考虑最后一个放入的物品,它要么跟在前面的一个元素在一个圆中,要么自己新开一个圆
    这个东西直接求是(O(n^2))的,怎么优化呢?考虑上述过程,也可以理解为总共进行(n)次操作,每次有(n-1)种选择不取(对应((n-1)*S_1(n-1,m))),还有(1)种选择取(对应(S_1(n-1,m-1))),最后恰好取到(m)个物品的方案数。写出它的母函数如下:

    [sumlimits_{i=0}^{n-1}(x+i) ]

    其中(x_i)的系数就是(S_1(n,i))
    用分治+FFT可以(O(nlog^2n))(S_1(n,i))
    另附两道双倍经验的神仙题:
    CF960G Bandit Blues
    [FJOI2016]建筑师

    第二类斯特林数

    符号为(egin{Bmatrix} n\ m end{Bmatrix}),定义是把(n)个不同的球放到(m)个不可区分的盒子且无空盒的方案数,递推式为(把第二类斯特林数简记为(S_2(n,m))):

    [S_2(n,m)=S_2(n-1,m-1)+mS_2(n-1,m) ]

    边界跟上面一样的
    直接求也是(O(n^2))的,发现它有一个比较显然的容斥形式:

    [S_2(n,m)=frac{1}{m!}sumlimits_{i=0}^{m}(-1)^{i}inom{m}{i}(m-i)^n ]

    理解的话,就是先考虑盒子有区别,就有:(sumlimits_{i=0}^{m}(-1)^{i}inom{m}{i}(m-i)^n)种方案,把(m)个盒子无区别的限制加上,除一个(m!)就可以了(貌似也可以用二项式反演来证明它的容斥意义?)
    化一下式子,把组合数拆开,并且把(m!)移到和号里面,可以得到:

    [S_2(n,m)=sumlimits_{i=0}^{m}frac{(-1)^{i}}{i!}frac{(m-i)^n}{(m-i)!} ]

    卷积(O(nlogn))
    第二类斯特林数还有一个很妙的性质:(n^k=sumlimits_{i=0}^{n}egin{Bmatrix} k\ i end{Bmatrix}i!inom{n}{i})
    附例题3道:
    [HEOI2016/TJOI2016]求和
    CF961G Partitions
    CF932E Team Work

    斯特林反演

    存在以下这么一个式子:

    [f(n)=sumlimits_{i=0}^{n}egin{Bmatrix} n\ i end{Bmatrix}g(i)Leftrightarrow g(n)=sumlimits_{i=0}^{n}(-1)^{n-i}egin{bmatrix} n\ i end{bmatrix}f(i)]

    怎么感觉跟二项式反演辣么像!
    太弱了,不会证啦,也没做相关的题。

  • 相关阅读:
    db 问题案例
    hystrix 服务监控
    题目004.删除排序数组中的重复项
    线上问题:redis 内存使用率 95%,排查bigkey
    题目003.寻找数组的中心索引
    enum 优雅代码
    java编程工具包 com.alibaba.fastjson
    mysql 问题记录
    题目002 统计N以内的素数
    题目002 反转链表
  • 原文地址:https://www.cnblogs.com/dummyummy/p/10458478.html
Copyright © 2020-2023  润新知