zoukankan      html  css  js  c++  java
  • ICPC2021银川C

    题外话

    问了下出题人(好像是?),做法跟我差不多,发一下

    做法

    有,

    [f_{i,j}=f_{i-1,j}+f_{i-1,j-1}(a_i-(j-1)) ]

    翻转下标:(g_{i,j}=f_{i,i-j}),有,

    [g_{i,j}=g_{i-1,j-1}+g_{i,j}(a_i-(i-j-1)) ]

    整理得

    [g_{i,j}=g_{i-1,j-1}+g_{i,j}(j+1)++g_{i,j}(a_i-i) ]

    对于最后一种转移,可以分治fft,单独考虑方程,

    [g_{i,j}=g_{i-1,j-1}+g_{i,j}(j+1) ]

    根据其组合意义,容易得到:

    [g_{i,j}=[frac{x^i}{i!}]e^xfrac{(e^x-1)^j}{j!} ]

    那么考虑(g_{i,?})这一行求和,有:

    [sum g_{i,j}=[frac{x^i}{i!}]e^xe^{e^x-1} ]

    对于(n)的答案,令(A(x)=prodlimits_{i=1}^n ((a_i-i)x+1))(B(x)=e^xe^{e^x-1})

    [ans_n=sum [x^i]A(x)[x^{n-i}]B(x) ]

    这个答案,显然可以通过分治fft解决:每次递归到右边时用(A(x)_{l,mid})做一次减法卷积。

  • 相关阅读:
    css float
    java基础77
    java基础75
    java基础73
    java基础72
    java基础71
    java基础630
    django-模版学习
    Django--- 网页显示时间
    创建一个django项目
  • 原文地址:https://www.cnblogs.com/Grice/p/14799220.html
Copyright © 2011-2022 走看看