紫色彼岸樱推迟绽放

根据宿命多项式和NOI斗主地的套路,一个长度为n的多项式可以被唯一表示成n个上升/下降幂多项式的和。

把题目给的式子写成这样子的形式:

$sum_{i=D}^{D+T-1}C_{i}^Lsum_{j=0}^{K-1}i^jA^{K-1-j}C_{K-1-j}^j$

它的意思是:后面的部分=在若干个A插入一些i,每个空最多插一个(不然不符合条件)

把后面的表示成$F(i)$

式子变成了$frac{1}{L!}sum_{i=D}^{D+T-1}frac{i!}{(i-L)!}F(i)$

用前面说的转化来把式子变成上升幂。设每个的系数为a[i],则变成了:

$F(x)=sum_{i=0}^{K-1}a_i(x+1)^{overline{i}}=sum_{i=0}^{K-1}a_ifrac{(x+i)!}{x!}$

继续推导公式:

$frac{1}{L!}sum_{i=D}^{D+T-1}frac{i!}{(i-L)!}sum_{j=0}^{K-1}a_jfrac{(i+j)!}{i!}=frac{1}{L!}sum_{j=0}^{K-1}a_jsum_{i=D}^{D+T-1}frac{(i+j)!}{(i-L)!}$

后面的阶乘可以被变成组合数:

$frac{1}{L!}sum_{j=0}^{K-1}a_j(j+L)!sum_{i=D}^{D+T-1}C_{i+j}^{j+L}=frac{1}{L!}sum_{j=0}^{K-1}a_j(j+L)!(C_{D+T+j}^{j+L+1}-C_{D+j}^{j+L+1})$

后面用了个组合数递推公式:添加一个新的组合数即可得到这个公式。

如果我们得知a[i],即可在O(k)计算这个式子。

a[i]看似只能高斯消元计算。但是把F函数变成组合数的形式,就会变成:

$F(x)=sum_{i=0}^{K-1}a_ifrac{(x+i)!}{x!}=sum_{i=0}^{K-1}a_ii!C_{x+i}^i$

后面的负组合数可以被转化成正组合数:c(-x,y)=c(x+y-1,y)*(-1)^y

把-1,-2,..-k带入(记为-n-1)得到

$F(-n-1)=sum_{i=0}^{K-1}a_ii!C_{-n-1+i}^i=sum_{i=0}^{K-1}a_ii!C_{n}^i(-1)^i=sum_{i=0}^{n}a_ii!C_{n}^i(-1)^i$

使用二项式反演的形式之一(较为不常用)得到

$a_nn!=sum_{i=0}^nF(-n-1)C_n^i(-1)^i$

展开组合数发现是个卷积。

f()可以使用矩阵乘法计算,dp一下即可。

考试时想用斯特林数拆幂,也想到了矩阵乘法。但是没有想到斗主地推公式套路所以没做出此题。

同时,二项式反演不熟,要加强。

总结:这道题用到了很多推式子技巧。以后要多做推式子的题提升感觉。

原文地址:https://www.cnblogs.com/cszmc2004/p/13057522.html