蓝桥杯 方阵幂次(矩阵快速幂模板题)

简介: 蓝桥杯 方阵幂次(矩阵快速幂模板题)

蓝桥杯 方阵幂次(矩阵快速幂模板题)


题目描述


输入第一行包含两个整数 N M。


接下来 N行,每行包含 N 个数,表示矩阵 A。


1 ≤ N ≤ 30 ,0 ≤ M ≤ 5 ,矩阵中的每个数 ≤ 5


输出描述


输出有 N  行,每行 N  个整数,表示image.png


输入输出样例

示例


输入


2 2
1 2
3 4


输出


7 10
15 22


运行限制


  • 最大运行时间:1s
  • 最大运行内存: 128M


标签: 矩阵快速幂


思路


这是一道矩阵快速幂的模板题,可以理由矩阵快速幂来解决

import os
import sys
# 请在此输入您的代码
n,m = map(int,input().split())
a = []
for i in range(n):
  a.append(list(map(int,input().split())))
def multi(A,B):
  n,m,k = len(A),len(A[0]),len(B[0])
  ans = [[0]*k for _ in range(n)]
  for i in range(n):
    for j in range(k):
      tmp = 0
      for z in range(m):
        tmp += A[i][z]*B[z][j]
      ans[i][j] = tmp
  return ans
def fast_pow(A,M):
  N = len(A)
  res = [[0]*N for _ in range(N)]
  for i in range(N): res[i][i] = 1
  while M:
    if M&1:
      res=multi(res,A)
    A = multi(A,A)
    M >>= 1
  return res
res = fast_pow(a,m)
for i in range(n):
  for j in range(n):
    print(res[i][j],end=" ")
  print()


相关文章
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
279 0
|
人工智能 Java BI
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-86 矩阵乘法
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-86 矩阵乘法
226 0
|
算法
蓝桥杯vip测试题系统试题-算法提高 矩阵转置
蓝桥杯vip测试题系统试题-算法提高 矩阵转置
244 0
|
存储 机器学习/深度学习 人工智能
【第十四届蓝桥杯考前速成】必考知识点及代码模板总结,看完至少多拿50分
文章目录 写在前面 一、年份日期问题 1、闰年判定 2、月份天数 二、简单算法 1、前缀和 2、差分 3、二分 4、并查集 二、简单数论 1、质数判定 2、筛质数 3、进制转换 (1)其他进制转十进制 (2)十进制转其他进制 4、保留小数 5、最大公约数 6、最小公倍数 7、快速幂 三、常用STL 1、string 2、vector 3、queue/priority_queue 4、stack 5、set/multiset 6、map/multimap 7、unordered_set/unordered_map 8、pair<int,int> 9、algorithm
1035 0
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
510 0
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用
739 0
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用
|
存储
蓝桥杯19国赛-矩阵计数
蓝桥杯19国赛-矩阵计数
337 0