神奇的矩阵乘法
矩阵快速幂
啊其实非常简单只需要在实数的快速幂基础上,重新定义针对矩阵的乘法即可。看代码。
1 |
|
矩阵乘法的大用处
跳台阶很熟悉了,一般无非给定一个台阶数 $n$,一次最多能跳 $k$ 次,然后递推方程dp[n] = dp[n - 1] + dp[n - 2] + ... + dp[n - k]
,当 $n$ 不是很大的时候我们可以直接开数组算出来,但是当 $n$ 很大($1 to 2^{31}-1$),直接开数组直接内存爆炸,而且 $k$ 也不是固定的时候,该怎么求?这就是这个题:https://vijos.org/p/1067
参考链接:http://www.matrix67.com/blog/archives/276
举个例子当 $k = 3$ 的时候,$n \le3$是初始状态,当$n > 3$时候初始状态
继续递推:
向量的最后一个元素代表到达$n$的方案数,我们需要构造一个矩阵 $M$ ,使得每 $\pmb x$ 与 $M$ 相乘一次,就相当于一次递推。我们观察上面发现,与矩阵 $M$ 相乘后,第$k$个元素是向量前$k-1$个元素的和,然后$1-(k-1)$个元素是原向量的 $2 - k$ 个元素。由此得出当$k = 3$时,
当$k = 4$时,
可知最终答案为:
1 |
|