其他分享
首页 > 其他分享> > LOJ6386题解

LOJ6386题解

作者:互联网

对于 \(\sum_{i=0}^{n}f(i)\) 的这种问题但是 \(f(i)\) 不是多项式函数且 \(n\) 很大时可以考虑一个用矩阵做的 DP:

\[\begin{bmatrix}\binom{n}{m}\\\sum_{i=0}^{m}\binom{n}{i}\end{bmatrix}=\begin{bmatrix}\frac{n-m+1}{m}&0\\\frac{n-m+1}{m}&1\end{bmatrix}\begin{bmatrix}\binom{n}{m-1}\\\sum_{i=0}^{m-1}\binom{n}{i}\end{bmatrix} \]

考虑这个矩阵的乘法:

\[\begin{bmatrix}a_1&0\\a_2&1\end{bmatrix}\begin{bmatrix}b_1&0\\b_2&1\end{bmatrix}=\begin{bmatrix}a_1b_1&0\\a_2b_1+b_2&1\end{bmatrix} \]

我们设这个矩阵是:

\[\begin{bmatrix}\frac{G(x)}{F(x)}&0\\\frac{H(x)}{F(x)}&1\end{bmatrix} \]

那么上述矩阵运算可以被改写为:

\[F_3(x)=F_1(x)F_2(x) \]

\[G_3(x)=G_1(x)G_2(x) \]

\[H_3(x)=G_1(x)H_2(x)+H_1(x)F_2(x) \]

为什么和上面是反的是因为这个矩阵乘法是左乘。

使用类似 快速阶乘算法 和 快速调和级数求和 那样的倍增就好了。。。复杂度 \(O(\sqrt{n}\log n)\),常数可能有亿点大。

标签:begin,frac,题解,矩阵,bmatrix,end,binom,LOJ6386
来源: https://www.cnblogs.com/lmpp/p/16433334.html