loj6077
题面。
多项式 yyds!
设答案为 \(f_{n,k}\)
你随便可推出:
\[f_{n,k}=\sum\limits_{i=0}^{n-1}f_{n-1,k-i}
\]
显然 naive dp \(O(nk)\) 一般是过不了 1e5 的。
设 OGF:
\[f_n(x)=\sum\limits_{k=0}^{+\infty}f_{n,k}\,x^k
\]
那么
\[f_n(x)=\sum\limits_{i=0}^{n-1}x^if_{n-1}(x)\\
=f_{n-1}(x)\sum\limits_{i=0}^{n-1}x^i\\
=f_{n-1}(x)\times\frac{1-x^n}{1-x}\]
算上边界,易有
\[f_n(x)=\frac{\prod\limits_{i=1}^n(1-x^i)}{(1-x)^n}
\]
即求 \([x^k]f_n(x)\)。
分数线上面的柿子,我们上一个多项式 Euler 变换(参见P4389 付公主的背包)
对下面的柿子,我们有
\[\frac1{(1-x)^n}=\sum\limits_m\dbinom{m+n-1}mx^m
\]
而我们由于只求一项,所以把上面算出来后暴力卷积出这一项即可。
注意模数 \(10^9+7\),需要 MTT。你可能需要一个快一点的板子。
AC记录。
本文来自博客园,作者:myee,转载请注明原文链接:https://www.cnblogs.com/myee/p/loj6077.html