【题解】P3176 [HAOI2015]数字串拆分

先处理函数 fif_ifi,有 fi=∑j=i−mi−1fjf_i = \sum \limits _{j = i - m}^{i - 1} f_jfi=j=imi1fj,这个递推式显然可以通过矩阵乘法进行优化。设 FiF_iFi 表示通过递推函数 fif_ifi 得到的矩阵,则有以下矩阵的递推(以 m=5m = 5m=5 为例):

$$
F_i =
\begin{bmatrix}
f_i\
f_{i - 1}\
f_{i - 2}\
f_{i - 3}\
f_{i -4}
\end {bmatrix}

\begin{bmatrix}
1 & 1 & 1 & 1 & 1\
1 & 0 & 0 & 0 & 0\
0 & 1 & 0 & 0 & 0\
0 & 0 & 1 & 0 & 0\
0 & 0 & 0 & 1 & 0
\end {bmatrix}^k
\cdot
\begin{bmatrix}
f_{i - 1}\
f_{i - 2}\
f_{i - 3}\
f_{i - 4}\
f_{i - 5}
\end{bmatrix}
$$

gig_igi 的计算不太好处理,等价转换以下令 GiG_iGi 表示处理前 iii 位得到的所有情况的矩阵之和,因此最后的答案就会在 GnG_nGn 中。由矩阵的乘法分配律可知 Ax+y=Ax×AyA^{x + y} = A^x \times A^yA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值