题目链接:https://www.luogu.org/problemnew/show/P3390

首先要明白矩阵乘法是什么

对于矩阵A m*p  与  B p*n 的矩阵 得到C m*n 的矩阵

矩阵乘法满足结合律,但不满足交换律(所以可以套快速幂的板子)

进行矩阵乘法时要么重载*号,或者是写一个矩阵相乘的函数

 #include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct Matrix{
long long m[][];
}A,E;
long long n,k,mod = ;
Matrix mul(Matrix A,Matrix B)
{
Matrix C;
for(long long i = ; i < n; i++)
for(long long j = ; j < n; j++)
{
C.m[i][j] = ;
for(long long k = ; k < n; k++)
C.m[i][j] = (C.m[i][j]+(A.m[i][k]*B.m[k][j])%mod)%mod;
}
return C;
}
Matrix fast(Matrix A, long long k)
{
Matrix S = E;
while(k)
{
if(k&) S = mul(S,A);
A = mul(A,A);
k = k>>;
}
return S;
}
int main(){ scanf("%lld%lld",&n,&k);
for(long long i = ; i < n; i++)
for(long long j = ; j < n; j++)
scanf("%lld",&A.m[i][j]); for(long long i = ; i < n; i++) E.m[i][i] = ;
Matrix ans = fast(A,k);
for(long long i = ; i < n; i++)
{
for(long long j = ; j < n-; j++)
printf("%lld ",(ans.m[i][j])%mod);
printf("%lld\n",(ans.m[i][n-])%mod);
}
return ;
}

【luogu P3390 矩阵快速幂】 模板的更多相关文章

  1. luoguP3390(矩阵快速幂模板题)

    链接:https://www.luogu.org/problemnew/show/P3390 题意:矩阵快速幂模板题,思路和快速幂一致,只需提供矩阵的乘法即可. AC代码: #include<c ...

  2. 矩阵快速幂模板(pascal)

    洛谷P3390 题目背景 矩阵快速幂 题目描述 给定n*n的矩阵A,求A^k 输入输出格式 输入格式: 第一行,n,k 第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素 输出格 ...

  3. POJ3070 矩阵快速幂模板

    题目:http://poj.org/problem?id=3070 矩阵快速幂模板.mod写到乘法的定义部分就行了. 别忘了 I ( ) 和 i n i t ( ) 要传引用! #include< ...

  4. 51nod1113(矩阵快速幂模板)

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1113 题意:中文题诶- 思路:矩阵快速幂模板 代码: #inc ...

  5. hdu 2604 矩阵快速幂模板题

    /* 矩阵快速幂: 第n个人如果是m,有f(n-1)种合法结果 第n个人如果是f,对于第n-1和n-2个人有四种ff,fm,mf,mm其中合法的只有fm和mm 对于ffm第n-3个人只能是m那么有f( ...

  6. POJ 3070 Fibonacci 矩阵快速幂模板

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18607   Accepted: 12920 Descr ...

  7. HDU6395-Sequence 矩阵快速幂+除法分块 矩阵快速幂模板

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面. Solution ...

  8. Final Destination II -- 矩阵快速幂模板题

    求f[n]=f[n-1]+f[n-2]+f[n-3] 我们知道 f[n] f[n-1] f[n-2]         f[n-1]  f[n-2]  f[n-3]         1    1    ...

  9. hdu 1575 求一个矩阵的k次幂 再求迹 (矩阵快速幂模板题)

    Problem DescriptionA为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input数据的第一行是一个T,表示有T组数据.每组数据的第一行有 ...

随机推荐

  1. TOJ 1840 Jack Straws

    Description In the game of Jack Straws, a number of plastic or wooden "straws" are dumped ...

  2. Log4Net 之初体验

    今天试了一下关于日志的一个插件——Log4Net 关于这个插件就不过多描述了,有很多人用,也挺好用比较方便,所以在此记录下使用过程. 一.建一个mvc 空网站 名字叫 Log4NetTest 二.下载 ...

  3. python之迭代器

    原文 我们已经知道,可以直接作用于for循环的数据类型有以下几种: 一类是集合数据类型,如list.tuple.dict.set.str等: 一类是generator,包括生成器和带yield的gen ...

  4. js简单时分秒倒计时

    效果: javascript: <script type="text/javascript"> function countTime() { //获取当前时间 var ...

  5. 项目在低版本浏览器下不兼容?友情提示客户升级浏览器(以下只针对IE浏览器)

    (function (window) { var win = window, sys = {}, ua = navigator.userAgent.toLowerCase(); (/msie\s+(\ ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO

    1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...

  7. 怎样在vs2013和vs2015中实现自动编译sass

    Visual Studio不论是2013版本还是2015版本要自动编译都需要添加扩展. 添加扩展的方法,路径“工具”->“扩展和更新”,在打开的窗口“搜索”你需要的扩展根据提示“下载”和“安装” ...

  8. attention机制的实现

    本文转自,http://www.jeyzhang.com/understand-attention-in-rnn.html,感谢分享! LSTM 中实现attention:https://distil ...

  9. requireJS基本配置相关

    requireJS: (1)实现js文件的异步加载,避免页面失去响应: (2)管理模块之间的依赖性,便于代码的编写和维护. 加载: <script src="js/require.js ...

  10. ElasticSearch索引快照

    参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/modules-snapshots.html 备份数据之前,要创建一个 ...