Luogu3390 【模板】矩阵快速幂
原题链接:https://www.luogu.org/problemnew/show/P3390
【模板】矩阵快速幂
题目背景
矩阵快速幂
题目描述
给定n*n的矩阵A,求A^k
输入输出格式
输入格式:
第一行,n,k
第2至n+1行,每行n个数,第i+1行第j个数表示矩阵第i行第j列的元素
输出格式:
输出A^k
共n行,每行n个数,第i行第j个数表示矩阵第i行第j列的元素,每个元素模10^9+7
输入输出样例
输入样例#1:
2 1
1 1
1 1
输出样例#1:
1 1
1 1
说明
n<=100, k<=10^12, |矩阵元素|<=1000 算法:矩阵快速幂
题解
我就学习学习非递归的矩阵快速幂。
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int M=105,mod=1e9+7;
ll n,k;
struct matrix{ll sq[M][M];matrix(){memset(sq,0,sizeof(sq));}}mat,one;
matrix operator *(matrix a,matrix b)
{matrix c;for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)for(int k=1;k<=n;++k)(c.sq[i][j]+=a.sq[i][k]*b.sq[k][j]%mod)%=mod;return c;
}
matrix power(matrix x,ll p)
{matrix ans=one;for(;p;p>>=1,x=x*x)if(p&1)ans=ans*x;return ans;
}
void in()
{scanf("%lld%lld",&n,&k);for(int i=1;i<=n;++i)for(int j=1;j<=n;++j)scanf("%lld",&mat.sq[i][j]);
}
void ac()
{for(int i=1;i<=n;++i)one.sq[i][i]=1;mat=power(mat,k);for(int i=1;i<=n;++i,putchar(10))for(int j=1;j<=n;++j)printf("%lld ",mat.sq[i][j]);
}
int main(){in();ac();}
Luogu3390 【模板】矩阵快速幂相关推荐
- POJ3420 Quad Tiling(模板+矩阵快速幂)
Quad Tiling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4107 Accepted: 1878 Descripti ...
- POJ3070 矩阵快速幂模板
题目:http://poj.org/problem?id=3070 矩阵快速幂模板.mod写到乘法的定义部分就行了. 别忘了 I ( ) 和 i n i t ( ) 要传引用! #include< ...
- 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)
一道经典的矩阵快速幂模板题. 传送门1-->快速幂基本思想 传送门2-->矩阵快速幂讲解(教主传授) 传送门3.1-->HDU-1575(经典矩阵快速幂模板题1) 传送门3.2--& ...
- 矩阵快速幂及斐波那契数列模板
本篇博客先给出矩阵快速幂以及利用矩阵快速幂求斐波那契数列的模板,讲解待更新-- const int N=10; int tmp[N][N]; void multi(int a[][N],int b[] ...
- 算法分类整理+模板①:矩阵快速幂
一直有一个想法,感觉自己很多基础算法不是很扎实,想要找个机会写一些算法的整理,顺便自己总结一些实用的模板. 最近偶然在训练赛中连续做了2道思维+矩阵快速幂的题目,碰巧有时间,就以矩阵快速幂作为这个系列 ...
- AtCoder abc256全题解(区间合并模板、矩阵快速幂优化dp、线段树……)
文章目录 A B C-枚举 D-区间合并模板 E-图论建模,函数图的性质 题意 思路 代码 F-树状数组 题意 思路 代码 G-矩阵快速幂优化dp H-线段树 思路 实现 传送门 本文CSDN 本文j ...
- 【洛谷P3390】 矩阵快速幂(模板)
贴一下矩阵快速幂的模板 #include<iostream> #include<cstdio> #include<cstring> #include<stri ...
- 快速幂+矩阵快速幂模板
快速..运算 快速幂 运用位运算 代码 分析 矩阵快速幂 题目 分析 代码 拓一..: 快速幂 运用位运算 强大的位运算把我搞得蒙蒙的 理解了之后我表示很喜欢!!! 代码 int power(int ...
- POJ 3070 Fibonacci(矩阵快速幂入门、模板)
? 题目链接:http://poj.org/problem?id=3070 ? 这题就是让求斐波那契数列的第n项,但是题目中n很大,所以打表和直接求都会TLE,对于这个题我们可以用矩阵快速幂,下面 ...
- 洛谷P3390 【模板】矩阵快速幂
传送门 从今天开始学习矩阵快速幂.jpg 1 //minamoto 2 #include<iostream> 3 #include<cstdio> 4 #include< ...
最新文章
- 海康威视智能机器人泊车_干货|海康威视智能停车场管理系统(含技术指导手册+施工图)...
- 操作系统(二十三)生产者消费者问题
- java 输出当月日历_java 实现打印当前月份的日历
- STM32单片机一个定时器输出不同频率PWM波
- OneNote中到底能放多少种东西?
- reactnative资源
- lisp将图元追加选择_AutoLISP入门7 - 图元资料的取得与活用技巧(二)
- python pdf模块_用于将PDF转换为文本的Python模块
- STM32F103ZET6(野火霸道v2)串口烧录(mcuisp)
- CocosBuilder
- 关于4442卡的读密码问题
- Debian安装软件商店-Debian的GUI软件管理
- 含辞未吐,声若幽兰,史上最强免费人工智能AI语音合成TTS服务微软Azure(Python3.10接入)
- mybatis中的when,then,end的用法
- 基于Web的个人网页响应式页面设计与实现 HTML+CSS+JavaScript(web前端网页制作课作业)
- UI设计课程教程分享:Banner的设计和技巧
- Activiti7-流程初体验
- banner中居中的page显示完全,其余显示百分之20--仿网易云首页轮播图
- 电脑上有哪些好用的视频剪辑软件
- ES查询原理:倒排索引