【模板】矩阵快速幂 洛谷 P3390

本文介绍了矩阵快速幂的算法,适用于解决给定矩阵求幂次的问题。文章讲解了矩阵乘法和快速幂运算的结合,并给出了具体实现,强调了处理取余和使用long long类型的重要性。提供了一个数据范围为1≤n≤100, 0≤k≤10^12, |A_{i,j}|≤1000的样例。" 5951793,791686,理解jqgrid colModel中formatter的使用,"['jQuery', '前端开发', '表格', '数据展示']
摘要由CSDN通过智能技术生成

题目背景
矩阵快速幂

题目描述
给定 n\times nn×n 的矩阵 AA,求 A^kA
k

输入格式
第一行两个整数 n,kn,k 接下来 nn 行,每行 nn 个整数,第 ii 行的第 jj 的数表示 A_{i,j}A
i,j

输出格式
输出 A^kA
k

共 nn 行,每行 nn 个数,第 ii 行第 jj 个数表示 (A^k)_{i,j}(A
k
)
i,j

,每个元素对 10^9+710
9
+7 取模。

输入输出样例
输入 #1复制
2 1
1 1
1 1
输出 #1复制
1 1
1 1
说明/提示
【数据范围】
对于 100%100% 的数据:1\le n \le 1001≤n≤100,0 \le k \le 10^{12}0≤k≤10
12
, |A_{i,j}| \le 1000∣A
i,j

∣≤1000

模板题,没什么特别的。注意一下取余和long long就好了。只是在快速幂的基础上重新定义了矩阵乘法和base,照猫画虎即可。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <stack>
#include <cmath>
#include <string>
using namespace std;
typedef long long ll ;
typedef vector<vector<ll> > mat;
typedef vector<ll>  vec;
using namespace std;
c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值