数学--矩阵快速幂
exmy
Less is more, and more is less.
展开
-
nyoj--300 Kiki & Little Kiki 2(矩阵快速幂)
nyoj 300题解操作函数:f(i)=f(i)^f((i−1+n)%n)f(i) = f(i) \text{^} f((i - 1 + n) \% n)一共有mm次操作,而mm可以达到10810^8的数量级,所以考虑构造一个矩阵加速运算。 构造矩阵: 以n=4n = 4为例 E=∣∣∣∣∣∣1001110001100011∣∣∣∣∣∣E = \begin{vmatrix} 1 &1& 0 &原创 2016-03-24 20:39:36 · 479 阅读 · 0 评论 -
nyoj--299 Matrix Power Series(矩阵 + 二分)
nyoj 299题解Sk=A+A1+A2+...+AkS_k = A + A^1 + A^2 + ... + A^kif k is even : Sk=(A1+A2+…+Ak/2)+Ak/2(A1+A2+…+Ak/2) =Sk/2+Ak/2Sk/2 =Sk/2(E+Ak/2)S_k = (A^1 + A^2 + … + A^{k/2}) + A^{k/2}(A^1 + A^2 + … + A^{k原创 2016-03-23 11:44:52 · 513 阅读 · 0 评论 -
nyoj--301 递推求值(矩阵快速幂)
nyoj 301题解用矩阵加速运算。 ∣∣∣∣∣f(n)f(n−1)1∣∣∣∣∣=∣∣∣∣b10a00c01∣∣∣∣∣∣∣∣∣f(n−1)f(n−2)1∣∣∣∣∣=∣∣∣∣b10a00c01∣∣∣∣n−2∣∣∣∣∣f(2)f(1)1∣∣∣∣∣\begin{vmatrix} f(n) \\ f(n - 1) \\1 \end{vmatrix} = \begin{vmatrix}b & a & c \原创 2016-03-18 21:06:35 · 448 阅读 · 0 评论 -
nyoj--1000 又见斐波那契数列(快速幂+欧拉定理)
nyoj 1000题解F(0)=a,F(1)=bF(0) = a, F(1) = b F(n)=F(n−1)F(n−2)F(n) = F(n - 1)F(n - 2) ⇒F(n)=F(n−2)2F(n−3)\Rightarrow F(n) = F(n - 2)^2F(n-3) ⇒F(n)=F(n−3)3F(n−4)2\Rightarrow F(n) = F(n - 3)^3F(n - 4)^2原创 2016-03-17 20:53:06 · 1229 阅读 · 0 评论 -
nyoj--148 fibonacci数列(二)(矩阵快速幂)
nyoj 148 模板记录之。#include <iostream> #include <fstream> #include <cmath> #include <vector> #include <algorithm> using namespace std;typedef vector<int> vec; typedef vector<vec> mat; const int mod = 1000原创 2016-03-15 12:00:07 · 419 阅读 · 0 评论