矩阵乘法及应用整理

本文探讨了矩阵乘法在信息学中的多种应用场景,包括快速幂计算、点操作、图论问题和线性递推关系的解决。通过矩阵乘法,可以优化动态规划和递推算法,解决大规模数据下的计算问题。总结了不同类型的问题,如求解路径方案数、构造矩阵解线性递推等,并提供了相关资源链接。
摘要由CSDN通过智能技术生成

本文参考:
http://www.matrix67.com/blog/archives/276(主要!)
IOI国家集训队2008 俞华程《矩阵乘法在信息学中的应用》(主要!)

因为matrix67大牛的文章出了一些偏差,文章剩余部分在这篇博客里可以找到
https://www.cnblogs.com/frog112111/tag/%E7%9F%A9%E9%98%B5%E7%BB%8F%E5%85%B8%E7%AE%97%E6%B3%95/

https://amoshyc.github.io/ojsolution-build/poj/p3233.html


前置技能树

1.两个N阶矩阵相乘:复杂度为N^3,(能优化到更低,但没必要去掌握)
2.快速幂算法:求数a^t,能在 (log t)的复杂度下,得解
3.矩阵快速幂:把矩阵A^k,跟上一个思路一样,不过基础单元a\*a变成了A\*A,复杂度就是矩阵\*快速幂(N^3\* long k)
4.求余运算:(a+b)%c=(a%c+b%c)%c,形状如此。乘法,次方也行

类型1:根据矩阵快速幂的定义操作

一: 给定矩阵A,请快速计算出A^n(n个A相乘)的结果,输出的每个数都mod p。

这是裸的矩阵快速幂,点亮前置技能树就能搞。

二:給定 NxN 矩陣 A,正整數 K,正整數 M,求 S = A^1 + A^2 + … + A^K。輸出時每個元素要 mod M。

网上有两种思路,
1.采用二分的方式:

首先我们知道,A^i可以二分求出。然后我们需要对整个题目的数据规模k进行二分。比如,当k=6时,有:
A + A^2 + A^3 + A^4 + A^5 + A^6 =(A + A^2 + A^3) + A^3*(A + A^2 + A^3)
应用这个式子后,规模k减小了一半。我们二分求出A^3后再递归地计算A + A^2 + A^3,即可得到原问题的答案。

2.构造矩阵:(容易理解)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值