zoukankan      html  css  js  c++  java
  • [BZOJ4555 TJOI2016 HEOI2016 求和]

    ​ 第一篇博客,请大家多多关照。(鞠躬

    BZOJ4555 TJOI2016 HEOI2016 求和

    题意:

    ​ 给定一个正整数(n)(1leqq n leqq100000)),求:

    [egin{align*} f(n)=sum_{i=0}^nsum_{j=0}^i egin{Bmatrix}i\jend{Bmatrix} imes2^j imes(j!) end{align*} ]

    题解:

    ​ 第二类斯特林数公式题,题目中很良心地给了我们第二类斯特林数的递推公式:

    [egin{align*} egin{Bmatrix}i\jend{Bmatrix}=j imes egin{Bmatrix}i-1\jend{Bmatrix}+egin{Bmatrix}i-1\j-1end{Bmatrix} end{align*},1leqq jleqq i-1\ egin{Bmatrix}i\iend{Bmatrix}=[igeqq0] ]

    ​ 于是我们愉快地用上面的公式,于是我们愉快地T掉。

    ​ 所以,我们应该考虑有没有一种能让我们在(O(logn))内求出我们需要的每一项第二类斯特林数的方法。

    ​ 有,我们可以用容斥定理求出斯特林数的通项公式(我并不会,是背的):

    [egin{align*} egin{Bmatrix}n\mend{Bmatrix}&=frac{1}{m!}sum_{k=0}^mdbinom{m}{k}(m-k)^n(-1)^k\ &=frac{1}{m!}sum_{k=0}^mfrac{m!}{k!(m-k)!}(m-k)^n(-1)^k\ &=sum_{k=0}^mfrac{1}{k!}frac{(m-k)^n}{(m-k)!}(-1)^k end{align*} ]

    ​ 带入原式中:

    [egin{align*} f(n)&=sum_{i=0}^nsum_{j=0}^i egin{Bmatrix}i\jend{Bmatrix} imes2^j imes(j!)\ ecause当j>i时,egin{Bmatrix}i\jend{Bmatrix}=0\&=sum_{j=0}^n2^j imes(j!)sum_{i=0}^nsum_{k=0}^jfrac{(-1)^k}{k!}frac{(j-k)^i}{(j-k)!}\ &=sum_{j=0}^n2^j imes(j!)sum_{k=0}^jfrac{(-1)^k}{k!}sum_{i=0}^nfrac{(j-k)^i}{(j-k)!} end{align*} ]

    ​ 出现了卷积形式,记(A(x)=sum_{k=0}^xfrac{1}{k!})(B(x)=sum_{i=0}^nfrac{x^i}{x!})

    ​ 预处理(2^j)(j!),用ntt处理(sum_{j=0}^nsum_{i+k=j}A(i) imes B(k))

    ​ 时间复杂度:(O(nlogn))

  • 相关阅读:
    使用外部 toolchain 编译 openwrt
    openwrt network 初始化
    attribute constructor&destructor
    ditaa
    quilt
    转载
    无线网络的一些基础概念
    FIR300M刷openwrt
    翻译:A Tutorial on the Device Tree (Zynq) -- Part V
    翻译:A Tutorial on the Device Tree (Zynq) -- Part IV
  • 原文地址:https://www.cnblogs.com/JackyhhJuRuo/p/8846939.html
Copyright © 2011-2022 走看看