首页 > 其他分享 >动态 DP

动态 DP

时间:2022-11-22 17:36:01浏览次数:64  
标签:... begin end DP bmatrix mathbf 动态 dp

例题:最大子段和问题,区间询问版本。
https://www.luogu.com.cn/problem/SP1043

考虑 dp。

\[dp_{l} = a_l \\ dp_{i} = \max(dp_{i - 1} + a_i, a_i) \]

根据矩阵乘法的重新定义,我们可以把它写成矩阵,其中“乘”->“加”,“加”->“\(\max\)”。也就是:

\[\begin{bmatrix} a_k & a_k \\ -\inf & 0\end{bmatrix} \begin{bmatrix} dp_{k-1} \\ 0\end{bmatrix} = \begin{bmatrix} dp_k \\ 0\end{bmatrix} \]

考虑求

\[\begin{bmatrix} dp_R \\ 0\end{bmatrix} \]

\[\begin{bmatrix} dp_R \\ 0\end{bmatrix} = \mathbf{A_R} \begin{bmatrix} dp_{R-1} \\ 0\end{bmatrix} = ... = \mathbf{A_R}\mathbf{A_{R-1}}...\mathbf{A_{L+1}} \begin{bmatrix} a_L \\ 0\end{bmatrix} \]

也就是我们对于每次询问需要求出 $ \mathbf{A_R}\mathbf{A_{R-1}}...\mathbf{A_{L+1}}$。

怎么求?考虑我们做序列连续和怎么做。前缀和/差分;树状数组;线段树...

考虑前缀积,但是由于矩阵不一定存在逆(需要高斯消元方程有解),不行。

【待补充】

标签:...,begin,end,DP,bmatrix,mathbf,动态,dp
From: https://www.cnblogs.com/Zeardoe/p/16915812.html

相关文章