1113 矩阵快速幂
基准时间限制:3 秒 空间限制:131072 KB 分值: 40  难度:4级算法题
给出一个N * N的矩阵,其中的元素均为正整数。求这个矩阵的M次方。由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果。
Input
第1行:2个数N和M,中间用空格分隔。N为矩阵的大小,M为M次方。(2 <= N <= 100, 1 <= M <= 10^9)
第2 - N + 1行:每行N个数,对应N * N矩阵中的1行。(0 <= N[i] <= 10^9)
Output
共N行,每行N个数,对应M次方Mod (10^9 + 7)的结果。
Input示例
2 3
1 1
1 1
Output示例
4 4
4 4

解题思路:先模拟写矩阵乘法,然后套用快速幂的模板,最后取模,就好了。。。

代码如下:

#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#define LL long long
using namespace std;
const int maxn = 1e9+7;
int n,m;
struct P{LL c[111][111];
} a,b;
P fun(P a,P d)///矩阵乘法
{P cnt;for(int i=0; i<n; i++)for(int j=0; j<n; j++){LL s=0;for(int k=0; k<n; k++)s=(s+a.c[i][k]*d.c[k][j])%maxn;cnt.c[i][j]=s;}return cnt;
}
void  f(int t)///快速幂
{for(int i=0; i<n; i++)for(int j=0; j<n; j++)if(i==j) b.c[i][j]=1;else b.c[i][j]=0;while(t){if(t&1) b=fun(b,a);a=fun(a,a);t>>=1;}for(int i=0; i<n; i++){for(int j=0; j<n; j++)printf("%lld ",b.c[i][j]);printf("\n");}
}
int main()
{scanf("%d %d",&n,&m);for(int i=0; i<n; i++)for(int j=0; j<n; j++)scanf("%lld",&a.c[i][j]);f(m);return 0;
}

51nod 1113 矩阵快速幂相关推荐

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

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

  2. 51nod 1113 矩阵快速幂【裸题】【内含黑科技】

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

  3. 51nod 1113 矩阵快速幂 (矩阵的n次方)

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

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

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

  5. 51nodoj 1113 矩阵快速幂

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

  6. 矩阵快速幂(51nod)

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

  7. 51nod-1113 矩阵快速幂

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

  8. 51nod 算法马拉松18 B 非010串 矩阵快速幂

    51nod 算法马拉松18 B 非010串 矩阵快速幂 非010串 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 如果一个01字符串满足不存在010这样的子串,那么称它为非010串 ...

  9. 51nod 1836战忽局的手段(期望+矩阵快速幂)

    战忽局的手段 n n n个事件, m m m次演讲 定义 d p [ i ] dp[i] dp[i]为 i i i次演讲的期望次数 d p [ 1 ] = 1 dp[1]=1 dp[1]=1 d p ...

最新文章

  1. 基于jQuery垂直多级导航菜单代码
  2. 二叉树的最小高度,最大高度(深度)和宽度
  3. java核心api_java核心API
  4. 谈谈互联网后端基础设施(转)
  5. 【React踩坑记一】React项目中禁用浏览器双击选中文字的功能
  6. DataGridView控件用法二:常用属性
  7. [Redux/Mobx] 说说Redux的实现流程
  8. 网页图表Highcharts实践教程之标签组与载入动画
  9. 解决FileUpload控件上传大文件被拒问题时
  10. Zookeeper学习笔记之 Zab协议(Zookeeper Atomic Broadcast)
  11. java常用类解析五:IO系统File类及文件搜索工具类
  12. igllib 204 gradient
  13. Ubuntu 14.04 java环境安装配置(不是openJAVA)
  14. (Oracle、SqlServer、Access)数据库开发代码生成工具SharpCode2.0
  15. 【重拾FPGA】三段式状态机的路口红绿灯
  16. deepin Linux 安装 tar,Linux Deepin 15.11安装更新firefox flash player
  17. 快速查询快递单号物流标记代收单号
  18. 《牛津字典精华总结》- 初阶系列 - 字母 - S
  19. Microsoft Edge 和 Google Chrome更新后,出现错误代码:STATUS_STACK_BUFFER_OVERRUN,有效解决办法记录【已解决】
  20. 群晖 NAS 与 百度云网盘互相进行同步

热门文章

  1. 天猫精灵控制Zigbee设备
  2. PCIE 设备在位检测机理
  3. Android - 获取系统时间和网络时间
  4. Latex报错(TexWork):Misplaced alignment tab character . l.13 Journal of Hygiene
  5. 基于python3.7 numpy scipy matplotlib sklearn的机器学习笔记5—监督学习之KNN、DT、NB算法简析
  6. wangeditor富文本编辑器使用过程中遇到的问题以及解决办法
  7. 大数据技术人员工具包之—常见数据挖掘分析处理工具
  8. Edge浏览器占用大量硬盘空间
  9. Imatest图像处理软件 Imatest Master
  10. 网络调试助手TCP server不能成功连接