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

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

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


题目描述


输入第一行包含两个整数 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()


相关文章
|
3月前
|
算法 Java C语言
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-48 算法训练 关联矩阵
38 0
|
3月前
|
人工智能 Java BI
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-86 矩阵乘法
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-ALGO-86 矩阵乘法
25 0
|
5月前
|
算法
蓝桥杯vip测试题系统试题-算法提高 矩阵转置
蓝桥杯vip测试题系统试题-算法提高 矩阵转置
29 0
|
11月前
|
存储
蓝桥杯19国赛-矩阵计数
蓝桥杯19国赛-矩阵计数
54 0
|
11月前
|
人工智能 BI
|
11月前
|
机器学习/深度学习 人工智能 移动开发
|
11月前
|
机器学习/深度学习 人工智能 移动开发
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
173 0
蓝桥杯之单片机学习(二十)——自创模板(最少省三,实现初始化、数码管显示、HC138独立按键(或矩阵键盘))
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用
135 0
蓝桥杯之单片机学习(六)——矩阵键盘的扫描原理与基本应用