题意

传送门 POJ 3233

题解

考虑递推,相邻两项作差 Sk+1=Sk+Ak+1S_{k+1}=S_{k}+A^{k+1}Sk+1​=Sk​+Ak+1,将等式右边转换为相同系数以方便求解,那么定义 Sk′=I+A+⋯+Ak−1S^{'}_{k}=I+A+\dots+A^{k-1}Sk′​=I+A+⋯+Ak−1,则有
(Sk′Ak)=(II0A)(Sk−1′Ak−1)=(II0A)k(0I)\begin{pmatrix} S^{'}_k \\ A^k \\ \end{pmatrix}=\begin{pmatrix} I & I\\ 0 & A\\ \end{pmatrix}\begin{pmatrix} S^{'}_{k-1}\\ A^{k-1} \\ \end{pmatrix}=\begin{pmatrix} I & I\\ 0 & A\\ \end{pmatrix}^k\begin{pmatrix} 0\\ I\\ \end{pmatrix}(Sk′​Ak​)=(I0​IA​)(Sk−1′​Ak−1​)=(I0​IA​)k(0I​)

(II0A)k+1=(ABCD)\begin{pmatrix} I & I\\ 0 & A\\ \end{pmatrix}^{k+1}=\begin{pmatrix} A & B\\ C & D\\ \end{pmatrix}(I0​IA​)k+1=(AC​BD​)
因为 Sk=Sk+1′−IS_k=S^{'}_{k+1}-ISk​=Sk+1′​−I,那么 B−IB-IB−I 即为所求。

#include <algorithm>
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;
typedef vector<int> vec;
typedef vector<vec> mat;
int N, K, M;mat mod_mul(mat &A, mat &B)
{mat C(A.size(), vec(B[0].size()));for (int i = 0; i < (int)A.size(); ++i)for (int k = 0; k < (int)B.size(); ++k)for (int j = 0; j < (int)B[0].size(); ++j)C[i][j] = (C[i][j] + A[i][k] * B[k][j]) % M;return C;
}mat mod_pow(mat &A, int n)
{mat B(A.size(), vec(A.size()));for (int i = 0; i < (int)A.size(); ++i)B[i][i] = 1;while (n){if (n & 1)B = mod_mul(B, A);A = mod_mul(A, A);n >>= 1;}return B;
}int main()
{scanf("%d%d%d", &N, &K, &M);mat B(N * 2, vec(N * 2));for (int i = 0; i < N; ++i)B[i][i] = B[i][N + i] = 1;for (int i = 0; i < N; ++i)for (int j = 0; j < N; ++j)scanf("%d", &B[N + i][N + j]);B = mod_pow(B, K + 1);for (int i = 0; i < N; ++i)for (int j = 0; j < N; ++j){int s = B[i][N + j];if (i == j)s = (s + M - 1) % M;printf("%d%c", s, j + 1 == N ? '\n' : ' ');}return 0;
}

POJ 3233 矩阵快速幂相关推荐

  1. I-Matrix Power Series POJ - 3233 矩阵快速幂+分治

    I-Matrix Power Series POJ - 3233 矩阵快速幂+分治 Problem Description Given a n × n matrix A and a positive ...

  2. POJ 3233 矩阵快速幂 等比数列

    //http://www.cnblogs.com/jiangjing/archive/2013/05/28/3103336.html/* 分析:求a^1+..a^n这是矩阵乘法中关于等比矩阵的求法:| ...

  3. POJ 3233 Matrix Power Serie (矩阵快速幂)

    Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + - + Ak. ...

  4. H - Fibonacci POJ - 3070 (矩阵快速幂)

    H - Fibonacci POJ - 3070 (矩阵快速幂) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and ...

  5. POJ 2778 DNA Sequence [AC自动机 + 矩阵快速幂]

    http://poj.org/problem?id=2778 题意:给一些只由ACGT组成的模式串,问有多少种长度为n且不含有给出的模式串的DNA序列. 自动机的状态转换可以看成一个有向图(有重边的) ...

  6. POJ 3070 Fibonacci(矩阵快速幂入门、模板)

    ? 题目链接:http://poj.org/problem?id=3070 ?   这题就是让求斐波那契数列的第n项,但是题目中n很大,所以打表和直接求都会TLE,对于这个题我们可以用矩阵快速幂,下面 ...

  7. 矩阵快速幂 POJ 3070 Fibonacci

    题目传送门 1 /* 2 矩阵快速幂:求第n项的Fibonacci数,转置矩阵都给出,套个模板就可以了.效率很高啊 3 */ 4 #include <cstdio> 5 #include ...

  8. poj 2778 AC自动机+矩阵快速幂

    题目链接:https://vjudge.net/problem/POJ-2778 题意:输入n和m表示n个病毒,和一个长为m的字符串,里面只可以有'A','C','G','T' 这四个字符,现在问这个 ...

  9. POJ - 2778 DNA Sequence(AC自动机+矩阵快速幂)

    题目链接:点击查看 题目大意:给出 n 个长度不大于 10 的字符串表示病毒串,再给出一个长度 len ,问长度为 len 的字符串中,有多少个字符串不含有病毒串作为子串 题目分析:因为病毒串的长度和 ...

  10. POJ - 3613 Cow Relays(Floyd思想+矩阵快速幂+动态规划)

    题目链接:点击查看 题目大意:给定一张由T(T<=100)条边构成的无向图,点的编号为1~1000,之间的整数,求从起点S到终点E恰好经过N(N<=1e6)条边(可重复经过)的最短路 题目 ...

最新文章

  1. Linux下JDK环境的配置
  2. Slf4j 包老冲突,每次排查半天,是什么原因?怎么解决?
  3. c 普通的文本变成注释文本的快捷键_收藏了!IntelliJ IDEA 2019 快捷键开发手册
  4. Yolo-v2 Visual Studio 2015安装时报错Team Explorer for Microsoft Visual Studio 2015解决办法
  5. 解决‘C:\Program‘ 不是内部或外部命令,也不是可运行的程序或批处理文件
  6. 自动清理mysql的lock进程的脚本_自动清理MySQL的Lock进程的脚本
  7. rsatool使用步骤图解_工作中想要事半功倍?图解来助你
  8. java键盘监听keyadapter_JAVA 键盘监听当中,释放键盘并没有停止运动
  9. mysql中数据导出到json文件的读取办法:
  10. 对输入的两个整数按大小顺序输出
  11. 修航片调卫片,不会PS的GISer不是一个好“美工“
  12. Win7如何显示文件扩展名
  13. 有关世界上第一台计算机的知识,计算机基础知识 1、世界上第一台电子计算机诞生于 A) 1943年 B) 1946年.doc...
  14. 裸机服务器装系统步骤,服务器裸机安装操作系统
  15. 交通事故快速处理及处理流程解析
  16. 用什么语言写游戏代码最好?
  17. 交通数字孪生高速公路规划设计市政道路BIM正向改扩建设计利用实景三维无人机机载LiDAR倾斜摄影车载地面三维激光扫描仪LiDAR点云数据提取自动驾驶高精地图三维矢量车道标线3d点云标注
  18. 【IntelliJ IDEA 2019.2】java读取发送pc串口数据
  19. 为什么跨浏览器测试很重要?7款跨浏览器测试工具请查收
  20. Android实战——第三方服务之Bmob后端云的答题系统小项目(四)

热门文章

  1. sublime linux 中文 版,Linux 下 Sublime Text 3 中文输入 (Debian 系通用)
  2. 彩色图rgb转换成灰色图
  3. 领域驱动架构(DDD)建模中的模型到底是什么?
  4. 台式机win10关闭fn热键_笔记本fn键,小编告诉你笔记本fn键怎么取消
  5. 人在年轻的时候,最核心的能力是什么?-复利(转自知乎)
  6. 携程实时大数据平台实践分享
  7. Frogger(图论,最短路径)
  8. 44.Linux君正X1000-添加st7789v显示
  9. 哔哩哔哩2020届秋招数据分析师面试第一轮(2019.8.8)
  10. wps word文字样式管理