洛谷P3390 模板 矩陣快速冪

2022-08-20 23:45:20 字數 829 閱讀 7373

給定矩陣$a_$,求$a^k$。

$k\leq 10^, n\leq 100$

這不是$\mathcal o(n^3 \lg k)$的矩陣乘法$+$快速冪板子嗎。。

這裡講一下矩陣乘法規則:

$$a\times b= c_&c_&\cdots&c_\\c_&c_&\cdots&c_\\\vdots&\vdots&\cdots&\vdots\\c_&c_&\cdots&c_\end}$$

其中$$c_=\sum_^n a_\times b_ $$

然後嘛。矩陣乘法滿足結合律。設$k$偶數,得

$$\begina^k&=a\times a\times\cdots\times a\\&=\left(a^}\right)\times\left(a^}\right)\end$$

所以。可以用快速冪做啦!

貼**:

#include using namespace std;

typedef long long ll;

typedef array, 105> matrix;

const ll p = 1000000007;

ll n, k;

matrix a, i;

matrix matrixmul(const matrix &a, const matrix &b)

return ret;

}matrix powermod(ll k)

signed main()

matrix ret = powermod(k);

for (int i=1; i<=n; i++)

return 0;

}

洛谷 P3390 模板 矩陣快速冪

時空限制1000ms 128mb 矩陣快速冪 給定n n的矩陣a,求a k.第一行,n,k 第2至n 1行,每行n個數,第i 1行第j個數表示矩陣第i行第j列的元素 輸出a k 共n行,每行n個數,第i行第j個數表示矩陣第i行第j列的元素,每個元素模10 9 7 2 1 1 11 1 1 1 1 1...

模板 矩陣快速冪 洛谷 P3390

題目背景 矩陣快速冪 題目描述 給定 n times nn n 的矩陣 aa,求 a kak。輸入格式 第一行兩個整數 n,kn,k 接下來 nn 行,每行 nn 個整數,第 ii 行的第 jj 的數表示 a a i,j 輸出格式 輸出 a ka k共 nn 行,每行 nn 個數,第 ii 行第 j...

洛谷P3390 矩陣快速冪 模板

給定 n n 的矩陣 a 求ak 第一行兩個整數 n,k 接下來 n 行,每行 n 個整數,第 i 行的第 j 的數表示 a i,j 輸出ak 共 n 行,每行 n 個數,第 i 行第 j 個數表示 ak i,j 每個元素對109 7取模。輸入 1 211 1111 23輸出 1 111 112矩陣...