1113 矩阵快速幂
基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题

收藏
关注

给出一个N * N的矩阵,其中的元素均为正整数。求这个矩阵的M次方。由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果。

Input

第1行:2个数N和M,中间用空格分隔。N为矩阵的大小,M为M次方。(2 <= N <= 100, 1 <= M <= 10^9)第2 - N + 1行:每行N个数,对应N * N矩阵中的1行。(0 <= N[i] <= 10^9)

Output

共N行,每行N个数,对应M次方Mod (10^9 + 7)的结果。

Input示例

2 31 11 1

Output示例

4 44 4

Code:
#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int AX = 1e2+66;
const int MOD = 1e9+7;
int n,m;
struct Matrix{LL a[AX][AX];
}ori,res;Matrix operator * ( Matrix x , Matrix y ){Matrix temp ;LL xx;for( int i = 0 ;i < n ; i++ ){for( int j = 0 ; j < n ; j ++ ){xx = 0LL ;for( int k = 0 ; k < n; k++ ){xx += x.a[i][k] % MOD * y.a[k][j] % MOD;}temp.a[i][j] = xx % MOD;}}return temp;
}/*Matrix multiply( Matrix x , Matrix y ){Matrix temp ;memset( temp.a , 0 ,sizeof(temp.a));for( int i = 0 ; i < n ; i ++ ){for( int j = 0 ; j < n ; j ++ ){for( int k = 0 ; k < n ; k ++ ){temp.a[i][j] += x.a[i][k] % MOD *y.a[k][j] % MOD;temp.a[i][j] %= MOD;}}}return temp;
}*/void cal( int b ){while( b ){if( b & 1 ) res = res * ori ;b >>= 1;ori = ori * ori ;}for( int i = 0 ; i < n ;i ++ ){for( int j = 0 ; j < n ; j++ ){cout << res.a[i][j] << ' ' ;}cout << endl;}
}void init(){//memset(res.a , 0 , sizeof(res.a));for( int i = 0 ; i < n ; i++ ){res.a[i][i] = 1;}return ;
}int main(){    cin >> n >> m ;init();for( int i = 0 ; i < n ; i ++ ){for( int j = 0 ; j < n ; j++ ){cin >> ori.a[i][j];}}cal(m); return 0 ;
}

51nod 1113 矩阵快速幂 模板题相关推荐

  1. 51nod 1113 矩阵快速幂 模板

    给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果. Input 第1行:2个数N和M,中间用空格分隔. ...

  2. 51nod 1113 矩阵快速幂【裸题】【内含黑科技】

    1113 矩阵快速幂 基准时间限制:3 秒 空间限制:131072 KB 分值: 40  难度:4级算法题 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大 ...

  3. 51nod 1113 矩阵快速幂

    1113 矩阵快速幂 基准时间限制:3 秒 空间限制:131072 KB 分值: 40  难度:4级算法题 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大 ...

  4. 51nod 1113 矩阵快速幂 (矩阵的n次方)

    给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果. Input 第1行:2个数N和M,中间用空格分隔. ...

  5. POJ3070 矩阵快速幂模板

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

  6. 又见斐波那契~矩阵快速幂入门题

    链接:https://www.nowcoder.com/acm/contest/105/G 来源:牛客网 题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对 ...

  7. 快速幂+矩阵快速幂模板

    快速..运算 快速幂 运用位运算 代码 分析 矩阵快速幂 题目 分析 代码 拓一..: 快速幂 运用位运算 强大的位运算把我搞得蒙蒙的 理解了之后我表示很喜欢!!! 代码 int power(int ...

  8. POJ3070矩阵快速幂简单题

    题意:       求斐波那契后四位,n <= 1,000,000,000. 思路:        简单矩阵快速幂,好久没刷矩阵题了,先找个最简单的练练手,总结下矩阵推理过程,其实比较简单,关键 ...

  9. 51nodoj 1113 矩阵快速幂

    题目连接 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大, ...

最新文章

  1. php 安装redis php扩展
  2. 锋利的JQuery学习笔记01
  3. TensorFlow + Docker + PyCharm
  4. 社区医学的研究方法:调查、流行病学研究、方案评估、临床试验Research Methods in Community Medicine: Surveys, Epidemiological Resear
  5. MSF(四):常用弱点扫描模块
  6. 在数据中心空间进行测试
  7. 前端学习(1333):mongodb增
  8. android 查询所有图片和视频,Android系统详解之获取图片和视频的缩略图
  9. LINUX下载编译libffi
  10. win7计算机搜索记录怎么删除文件,win7删除文件浏览记录,windows搜索记录删除
  11. Unity中更改鼠标光标样式
  12. uniapp H5文件预览,PDF预览
  13. 怎么打开系统服务器,Win10怎么打开系统服务管理器 Win10打开系统服务管理器操作方法...
  14. 惯性导航学习笔记——惯性技术基础知识
  15. 实变函数与泛函分析课本pdf_免费推荐几本实变函数和泛函分析的书
  16. Linux下的图片编辑软件
  17. win10添加打印机--无法访问指定设备,路径或文件。。
  18. ED2k下载工具电驴0.44b简体中文
  19. html需要环境,环境.html
  20. 大数据可视化热门工具

热门文章

  1. 小涛python学习路程-(2)编程基本概念
  2. oracle实验报告4:Oracle数据库模式对象管理(含实验小结)
  3. 2021年基金从业资格考试时间及报名时间
  4. 力扣 378. 有序矩阵中第 K 小的元素
  5. go语言编写php扩展,[原创]快速开发一个PHP扩展-Go语言中文社区
  6. mesh和wifi中继的区别_一文看懂Mesh路由和无线中继的差异
  7. 状态同步和帧同步的优缺点
  8. 编写ESM风格的nodejs应用
  9. mysql怎么设置每天定时清表_Mysql每天定时清空表
  10. Kubernetes kube-proxy 如何与 iptables 完美配合使用