本来今天想补一补中考化学,突然发现今天居然是省选联考,一看题似乎会做,就跑来写题解了。
为了方便,这里的 (b) 就是题目中的 (x)。
(sum_{k=0}^nf(k)b^k{nchoose k}\ =sum_{k=0}^nb^k{nchoose k}sum_{t=0}^ma_tk^t\ =sum_{t=0}^ma_tsum_{k=0}^n{nchoose k}b^kk^t\ )
看起来像 (mathbf{EGF}) 的卷积是吧。
设: (F(x)=sum_i b^{n-i}frac{x^i}{i!},G(x)=sum_i i^tfrac{x^i}{i!})
则有 (sum_{k=0}^n{nchoose k}b^kk^t=n![x^n]F(x)G(x))
那么 (F(x)) 和 (G(x)) 分别是什么呢?
(F(x)=sum_i b^{n-i}frac{x^i}{i!}=b^nsum_i b^{-i}frac{x^i}{i!}=b^ne^{frac{x}{b}})
(G(x)=sum_i i^tfrac{x^i}{i!}\ =sum_i frac{x^i}{i!}sum_{j=0}^t{trace j} i^underline j\ =sum_{j=0}^t{trace j}sum_i frac{x^i}{i!} i^underline j\ =sum_{j=0}^t{trace j}sum_{ige j} frac{x^i}{(i-j)!}\ =sum_{j=0}^t{trace j}sum_i frac{x^{i+j}}{i!}\ =sum_{j=0}^t{trace j}x^jsum_i frac{x^i}{i!}\ =e^xsum_{j=0}^t{trace j}x^j\ )
(sum_{k=0}^n{nchoose k}b^kk^t\ =n![x^n]F(x)G(x)\ =n!b^n[x^n]e^{frac{x}{b}}e^xsum_{j=0}^t{trace j}x^j\ =n!b^n[x^n]e^{x(1+frac{1}{b})}sum_{j=0}^t{trace j}x^j\ =n!b^nsum_{j=0}^t{trace j}(1+frac 1b)^{n-j}frac{1}{(n-j)!})
你发现模数居然不是质数,你又发现把前面的东西挪进去分母就消掉了。于是变成:
(sum_{j=0}^t{trace j}(b+1)^{n-j}b^jn^underline j\)
这就可以 (O(t)) 计算了。要算 (m) 个这样的东西,总复杂度 (O(m^2))。
滚去学化学了。听说还能更快,先咕着。