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

思路:这道题是快速幂乘法的升级版,普通快速幂是整数,这个只是转换成整数乘法而已。

#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std;
typedef long long ll;
#define mod (1000000000+7)
struct node {ll a[105][105];
};    //构造矩阵结构体
int n;
node mulpity(node x, node y)//矩阵乘法
{node ans;memset(ans.a, 0, sizeof(ans.a));for(int i=0;i<n;i++)for(int j=0;j<n;j++)for (int k = 0; k < n; k++)//k表示x的行和b的列{ans.a[i][j] =(ans.a[i][j]+ (x.a[i][k] * y.a[k][j])%mod)%mod;}return ans;
}
node quikmul(node x, int m)
{node ans;memset(ans.a, 0, sizeof(ans.a));for (int i = 0; i < n; i++)ans.a[i][i] = 1;//构造单位矩阵while (m ){if (m & 1)ans = mulpity(ans,x);x = mulpity(x,x);m >>= 1;}return ans;}
int main()
{int m;node ans;while (~scanf("%d%d", &n, &m)){for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)scanf("%lld", &ans.a[i][j]);               ans = quikmul(ans, m); for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){if (j == 0)cout << ans.a[i][j];elsecout << " " << ans.a[i][j];}printf("\n");}}return 0;
}

51 Nod1113 矩阵快速幂相关推荐

  1. 矩阵快速幂 HDU3483

    1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 //矩阵大小上限 7 const ...

  2. 快速幂 + 矩阵快速幂

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

  3. HDU 2243考研路茫茫——单词情结 (AC自动机+矩阵快速幂)

    背单词,始终是复习英语的重要环节.在荒废了3年大学生涯后,Lele也终于要开始背单词了. 一天,Lele在某本单词书上看到了一个根据词根来背单词的方法.比如"ab",放在单词前一般 ...

  4. 矩阵快速幂---BestCoder Round#8 1002

    当要求递推数列的第n项且n很大时,怎么快速求得第n项呢? 可以用矩阵快速幂来加速计算. 我们可以用矩阵来表示数列递推公式 比如fibonacci数列 可以表示为 [f(n)   f(n-1)] = [ ...

  5. HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Li ...

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

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

  7. BZOJ4818 [SDOI2017] 序列计数 【矩阵快速幂】

    题目分析: 一个很显然的同类项合并.注意到p的大小最大为100,考虑把模p意义下相同的求出来最后所有的减去没有质数的做矩阵快速幂即可. 代码: 1 #include<bits/stdc++.h& ...

  8. 矩阵快速幂的一份小结

    矩阵真是个好东西!虽然矩乘的复杂度有点难看... ... 这几天也做了不少矩阵题目,还是有几道好题目的.不过我打算从入门开始. 矩阵乘法:A[i][k]*B[k][j]=C[i][j];(A的第i行的 ...

  9. [BZOJ3583]杰杰的女性朋友(矩阵快速幂)

    杰杰的女性朋友 时间限制:10s      空间限制:256MB 题目描述 杰杰是魔法界的一名传奇人物.他对魔法具有深刻的洞察力,惊人的领悟力,以及令人叹为观止的创造力.自从他从事魔法竞赛以来,短短几 ...

最新文章

  1. java 手势识别_java – 如何在Android中实现手势识别
  2. mysql服务怎么改名字_MySQL数据库改名字
  3. sparkSQL 统计TopN
  4. JSP输出HTML时产生的大量空格和换行的去除方法
  5. 多线程:三大不安全案例
  6. qt connect函数_Qt Inside信号和槽之connect
  7. 3、JSON相关基础知识点总结(3)
  8. java读取excel模板并复制_POI复制Excel模板并填充数据
  9. 点云配准ICPNDT
  10. 2022最新苹果群控同步投屏电脑/手机控制手机功能使用安装
  11. VS2013创建Windows服务
  12. 路由器连接光猫用桥接模式好还是用路由模式好?路由器桥接模式vs路由模式
  13. 【Tkinter】常用组件(二)
  14. 戴尔便携式计算机 故障,老DELL笔记本电脑常见故障“通病”问题
  15. Android Q Data Setup for Short Connection
  16. 云数据库RDS与自建数据库相比到底有什么优势?
  17. HPD2368计算机上没有打印机,HPD2368打印机显示堵纸了,打印不了, – 手机爱问
  18. JAVA程序设计:买卖股票的最佳时机含手续费(LeetCode:714)
  19. 没有专业技能不要紧,通过快营通也能月入上千元
  20. 伯努利(Bernoulli)数学习笔记

热门文章

  1. Android手机不同频率的听力测试功能实现
  2. 20220518编译OpenHarmony-v3.1-Release出现genext2fs: command not found
  3. 位操作符左移问题(<<)如果char类型左移后位数超出一字节如何打印?
  4. 谷歌账号电子邮件怎么改_如何使用Google仅搜索您的电子邮件,事件和其他内容...
  5. 09.2. 长短期记忆网络(LSTM)
  6. Oracle性能调优之/*+parallel(t,8)*/
  7. krpano 常用标签
  8. OpenCV-Python[第三章]——位操作
  9. 使用 Traci进行仿真
  10. MySQL创建无符号整数(int)及取值范围