luogu#P3390. 【模板】矩阵快速幂
【模板】矩阵快速幂
题目背景
一个 的矩阵是一个由 行 列元素排列成的矩形阵列。即形如
$$A = \begin{bmatrix} a_{1 1} & a_{1 2} & \cdots & a_{1 n} \\ a_{2 1} & a_{2 2} & \cdots & a_{2 n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{bmatrix} \text{.} $$本题中认为矩阵中的元素 是整数。
两个大小分别为 和 的矩阵 相乘的结果为一个大小为 的矩阵。将结果矩阵记作 ,则
$$c_{i j} = \sum_{k = 1}^{n} a_{i k} b_{k j} \text{,\qquad($1 \le i \le m$, $1 \le j \le p$).} $$而如果 的列数与 的行数不相等,则无法进行乘法。
可以验证,矩阵乘法满足结合律,即 。
一个大小为 的矩阵 可以与自身进行乘法,得到的仍是大小为 的矩阵,记作 。进一步地,还可以递归地定义任意高次方 ,或称 $A^k = \underbrace{A \times A \times \cdots \times A}_{k \text{ 次}}$。
特殊地,定义 为单位矩阵 $I = \begin{bmatrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \end{bmatrix}$。
题目描述
给定 的矩阵 ,求 。
输入格式
第一行两个整数 。
接下来 行,每行 个整数,第 行的第 的数表示 。
输出格式
输出
共 行,每行 个数,第 行第 个数表示 ,每个元素对 取模。
2 1
1 1
1 1
1 1
1 1
提示
【数据范围】
对于 的数据,,,。