大佬博客:https://blog.csdn.net/baidu_23081367/article/details/52347256

代码:

const int mat_size = 5;//矩阵大小,需要乘以2,为了&运算的时候需要二倍的矩阵大小const int mod=1e9+7;struct Matrix
{long long a[mat_size][mat_size];int x, y;//长宽Matrix()  //返回0矩阵{memset(a,0,sizeof(a));}Matrix(int x,int y)//返回0矩阵,并且x,y赋值{this->x = x;this->y = y;memset(a, 0,sizeof(a));}Matrix(int n)  //返回n*n的【单位矩阵】{this->x=n;this->y=n;memset(a,0,sizeof(a));for (int i = 0; i <n;++i)    a[i][i]=1;}Matrix operator * (const Matrix &B)//矩阵乘法{Matrix tmp;for (int i = 0; i < x; ++ i)for (int j = 0; j < B.y; ++ j){tmp.a[i][j] = 0;for (int k = 0; k < y; ++ k){tmp.a[i][j] = (tmp.a[i][j] + a[i][k] * B.a[k][j] % mod) % mod;}}tmp.x = x;tmp.y=B.y;return tmp;}Matrix operator ^ (long long b)//矩阵A的b次方{Matrix ret = Matrix(x);  Matrix A = *this;while( b )  {  if( b & 1 ) ret = ret * A ;  b >>= 1 ;  A = A * A ;  }  return ret ;  }Matrix operator & (int b)//A^0 + A^1+A^2+A^3+++A^n,其中A是矩阵。最后返回的就是一个矩阵{Matrix ret = *this;for (int i = ret.x; i < ret.x * 2; ++ i)   {ret.a[i-ret.x][i]= 1;ret.a[i][i] = 1;}ret.x <<= 1;ret.y <<= 1;//pg(ret);ret = ret^b;ret.x >>= 1;ret.y >>= 1;for (int i = 0; i < ret.x; ++ i)  for (int j = 0; j < ret.y; ++ j)(ret.a[i][j] += ret.a[i][j + ret.x])%=mod;return ret;}void pg(Matrix A){for (int i = 0; i <A.x; ++i){for (int j = 0; j < A.y;++j) cout<<A.a[i][j]<<" ";cout<<endl;}cout<<endl;}
};

(转)矩阵快速幂模板相关推荐

  1. POJ3070 矩阵快速幂模板

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

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

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

  3. 51nod 1113 矩阵快速幂 模板题

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

  4. How many ways?? - hdu2157(矩阵快速幂-模板)

    分析:求Map^k,刚开始没有用快速幂,TLE了   代码如下: =================================================================== ...

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

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

  6. 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)

    一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 传送门3.1-->HDU-1575(经典矩阵快速幂模板题1) 传送门3.2--& ...

  7. 算法分类整理+模板①:矩阵快速幂

    一直有一个想法,感觉自己很多基础算法不是很扎实,想要找个机会写一些算法的整理,顺便自己总结一些实用的模板. 最近偶然在训练赛中连续做了2道思维+矩阵快速幂的题目,碰巧有时间,就以矩阵快速幂作为这个系列 ...

  8. 快速幂 + 矩阵快速幂

    快速幂 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #define LL lo ...

  9. 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解

    传送门 问题描述 已知递推公式: F(n, 1)=F(n-1, 2) + 2F(n-3, 1) + 5, F(n, 2)=F(n-1, 1) + 3F(n-3, 1) + 2F(n-3, 2) + 3 ...

最新文章

  1. SQL Server数据类型
  2. 阿里巴巴发布AI养蜂系统
  3. tcp伪报头_TCP和UDP报头的比较
  4. mysql主外键引用关系,关于mysql:数据主/外键关系
  5. hide show vue 动画_Vue2.x学习四:过渡动画
  6. 信捷触摸屏c语言脚本_信捷触摸屏TG系列产品型号说明及功能介绍
  7. android Camera 录像时旋转角度
  8. JavaScript 系列笔记(一)数据类型
  9. GMap.Net开发之自定义Marker
  10. 矩阵转置相关公式_线性代数入门——矩阵的转置运算及对称矩阵的概念
  11. eviews安装教程
  12. 在c语言中TH1是什么意思,【菜鸟求助】请问拿到一个芯片比如HS0038,但是我怎么知道该怎么用它。C语言该怎么编...
  13. 硅谷华人码农成语大全
  14. 在边缘试探的滴滴顺风车 凭什么在2019年再上线?
  15. 如何查看网页元素的名称ID和其他信息
  16. 计算机视觉简介:历史、现状和发展趋势
  17. 线性代数Python计算:无关向量组的正交化
  18. 全栈很屌?什么是全栈工程师
  19. POJ 3368 Frequent values
  20. 启动定时器t0的工作指令是_启动定时器 0 工作的指令是使 TCON 的 ( )_学小易找答案...

热门文章

  1. dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
  2. maven工程servlet实例之jar包冲突解决
  3. Azkaban编译和安装模式
  4. 使用ThreadLocal来解决问题
  5. 超时机制,断路器模式简介
  6. SpringBoot_数据访问-整合Druid配置数据源监控
  7. Redisson初始化
  8. ActiveMQ 消息持久化到Mysql数据库
  9. Spring注解编程基石(一)
  10. js与java的区别,JavaScript与Java的区别是什么呀?