题目大意很明了,初看是像是就等比数列前n项和,但公比是一个矩阵,能用吗?
我不知道,因为如果是类似等比数列前n项和的好像关于矩阵除法比较难写,中间涉及到逆举证神马的,直接忽略
输入的数据第一行分别是$n,k,m$
代表矩阵的是$n \times n$型,求前$k$项和,结果的每一项对$m$取模
然后就是一个$n \times n$的矩阵。
我做这题时用的是类似二分的方法做的,仔细观察可以发现
$S_k = \sum_{i=1}^{k}A_{i}=(1 + {A_{\frac{k}{2}}}) \sum_{i=1}^{\frac{k}{2}}A_i + A_k = (1 + {A_{\frac{k}{2}}})S_{\frac{k}{2}} + A_k (k为奇数)$
$S_k = \sum_{i=1}^{k}A_{i}=(1 + {A_{\frac{k}{2}}}) \sum_{i=1}^{\frac{k}{2}}A_i= (1 + {A_{\frac{k}{2}}})S_{\frac{k}{2}} (k为偶数)$
故可以用这方法直接推出答案,中间要记得对数取模,以防超int,还要注意$S_1=A$ ;
然后就是写矩阵乘法与加法部分,可直接套模板
1 |
|