(转)矩阵快速幂模板
大佬博客: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;}
};
(转)矩阵快速幂模板相关推荐
- POJ3070 矩阵快速幂模板
题目:http://poj.org/problem?id=3070 矩阵快速幂模板.mod写到乘法的定义部分就行了. 别忘了 I ( ) 和 i n i t ( ) 要传引用! #include< ...
- 快速幂+矩阵快速幂模板
快速..运算 快速幂 运用位运算 代码 分析 矩阵快速幂 题目 分析 代码 拓一..: 快速幂 运用位运算 强大的位运算把我搞得蒙蒙的 理解了之后我表示很喜欢!!! 代码 int power(int ...
- 51nod 1113 矩阵快速幂 模板题
1113 矩阵快速幂 基准时间限制:3 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计 ...
- How many ways?? - hdu2157(矩阵快速幂-模板)
分析:求Map^k,刚开始没有用快速幂,TLE了 代码如下: =================================================================== ...
- 51nod 1113 矩阵快速幂 模板
给出一个N * N的矩阵,其中的元素均为正整数.求这个矩阵的M次方.由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果. Input 第1行:2个数N和M,中间用空格分隔. ...
- 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)
一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 传送门3.1-->HDU-1575(经典矩阵快速幂模板题1) 传送门3.2--& ...
- 算法分类整理+模板①:矩阵快速幂
一直有一个想法,感觉自己很多基础算法不是很扎实,想要找个机会写一些算法的整理,顺便自己总结一些实用的模板. 最近偶然在训练赛中连续做了2道思维+矩阵快速幂的题目,碰巧有时间,就以矩阵快速幂作为这个系列 ...
- 快速幂 + 矩阵快速幂
快速幂 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #define LL lo ...
- 蓝桥杯 算法提高 递推求值(矩阵快速幂)详解
传送门 问题描述 已知递推公式: 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 ...
最新文章
- SQL Server数据类型
- 阿里巴巴发布AI养蜂系统
- tcp伪报头_TCP和UDP报头的比较
- mysql主外键引用关系,关于mysql:数据主/外键关系
- hide show vue 动画_Vue2.x学习四:过渡动画
- 信捷触摸屏c语言脚本_信捷触摸屏TG系列产品型号说明及功能介绍
- android Camera 录像时旋转角度
- JavaScript 系列笔记(一)数据类型
- GMap.Net开发之自定义Marker
- 矩阵转置相关公式_线性代数入门——矩阵的转置运算及对称矩阵的概念
- eviews安装教程
- 在c语言中TH1是什么意思,【菜鸟求助】请问拿到一个芯片比如HS0038,但是我怎么知道该怎么用它。C语言该怎么编...
- 硅谷华人码农成语大全
- 在边缘试探的滴滴顺风车 凭什么在2019年再上线?
- 如何查看网页元素的名称ID和其他信息
- 计算机视觉简介:历史、现状和发展趋势
- 线性代数Python计算:无关向量组的正交化
- 全栈很屌?什么是全栈工程师
- POJ 3368 Frequent values
- 启动定时器t0的工作指令是_启动定时器 0 工作的指令是使 TCON 的 ( )_学小易找答案...
热门文章
- dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
- maven工程servlet实例之jar包冲突解决
- Azkaban编译和安装模式
- 使用ThreadLocal来解决问题
- 超时机制,断路器模式简介
- SpringBoot_数据访问-整合Druid配置数据源监控
- Redisson初始化
- ActiveMQ 消息持久化到Mysql数据库
- Spring注解编程基石(一)
- js与java的区别,JavaScript与Java的区别是什么呀?