• 特殊计数序列——第二类斯特林(stirling)数


    计算式

    [S(n,m)=S(n-1,m-1)+mS(n,m) ]

    (S(0,0)=1,S(i,0)=0(i>0))

    组合意义

    (n)个可以分辨的小球放入(m)个不可分辨的盒子中,且每个盒子非空

    那么上面的式子就类似与(dp)的转移了

    性质

    1、(S(n,m)=frac{1}{m!}sum_{i=0}^m(-1)^idbinom{m}{i}(m-i)^n)

    证明:考虑组合意义

    先将盒子变成有序,最后除以(m!)即可

    第二类斯特林数保障每个盒子非空,故考虑容斥,每次钦定(i)个盒子必须为空,选法有(dbinom{m}{i})种,(n)个小球放入剩下的((m-i))个盒子中共有((m-i)^n)种放法

    2、(n^m=sum_{i=0}^mS(m,i)*i!*dbinom{n}{i})

    证明:依然是考虑组合意义,左边是(m)个小球随意的放入(n)个盒子的方案数,并且考虑顺序

    右边是枚举非空的盒子一共有(i)个,球放入的方案数为(S(m,i)),有顺序的选(i)个盒子有(i!*dbinom{n}{i})种方案

    关于这个式子还有一个小技巧:为了使(S(m,i))(dbinom{n}{i})的值均大于(0),一定有(ileq min(n,m)),所以我们枚举的sigma上界是可以根据我们的需求进行变化的

    求解第二类斯特林数

    (S(n,m))的值

    普通求解是(O(n^2))的递推,考虑其他的方法

    由性质1的式子变形可以得到

    [S(n,m)=frac{1}{m!}sum_{i=0}^m(-1)^ifrac{m!}{k!(m-k)!}(m-k)^n ]

    [S(n,m)=sum_{i=0}^nfrac{(-1)^k}{k!}frac{(m-k)^n}{(m-k)!} ]

    直接FFT即可,时间复杂度(O(nlogn))

  • 相关阅读:
    第一节 49_ref_out 简单
    第一节 38函数 简单
    第二节 2面向对像简介 简单
    第一节 42字符串基础 简单
    第二节 3属性 简单
    第一节 33enum枚举 简单
    Java jdbc 数据库
    css 使IE和FIREFOX下变为手型
    JS调用PageMethods
    USB设备量产导致通用串行总线控制器显示感叹号解决办法
  • 原文地址:https://www.cnblogs.com/encodetalker/p/10780184.html
Copyright © 2020-2023  润新知