码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵 总结

时间:2019-11-28 19:08:20      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:基础   ems   def   enc   show   tps   乘法表   状态   rod   

前言

矩阵是一种较为基础的数学工具,OI里面好像不常考?,反正学完数学一本通里的矩阵,做一些矩阵的应用感觉就应该可以了。行列式也是很有趣的东西,我花时间钻研了一下。下面归纳总结一下我做过的一些矩阵的题型

如果定义这种不会请百度吧 -> 百度矩阵

矩阵乘法

矩阵里面最主要的一种。下面是矩阵乘法的一些题。

  • 矩阵快速幂

P3390模板题 基础。

  • 矩阵加速递推数列

P1939模板题 加速加法递推直接设状态转移矩阵就好了。

石头游戏 其实想清楚了石头要从一个格子转移到另一个格子,就可联想到用矩阵来表示格子与格子间的的转移。码量有点大。

Codeforces 1182E Product Oriented Recurrence 加速乘法递推数列。这类题首先要把c和f拆开来分别处理。转换一下思维,令 \(f_i=f_1^p*f_2^q*f_3^r\),这时候我们就可以对 p,q,r 进行矩阵加速数列处理(找出 p,q,r 转移的规律)。同样的方法令第x项的c的次数为\(k_x\),有 \(k_x=k_{x-1}+k_{x-2}+k_{x-3}+2*x-6\)总结:乘法递推序列这类题就把递推放到指数上来Talk is cheap.Show me the code.

Codeforces 1117D Magic Gems 自己写出来一个dp方程,发现这个方程可以用矩阵加速,OK。Talk is cheap.Show me the code.

  • 其他矩阵乘法

Codeforces 1252K Addition Robot 把线段树上的点看成矩阵,就可以表示这些运算(突然发现矩阵乘法还可以这样用),线段树维护区间乘。修改就是‘A’,‘B’互换,所以我们每个点保存两个矩阵,比如我们保存一个该区间当前矩阵‘ABBB’,再保存一个可能会翻转成为的矩阵‘BAAA’(字母对应矩阵,点保存矩阵乘积),修改就交换一下好了。

更多请关注 -> 矩阵刷题题单

总结一下几种题型以及方法:

1.给出加法递推数列,求第n项\((n<=10^{18})\)做法:根据题目写转移矩阵,可能会有一些小技巧,要自己想。

2.给出乘法递推数列,求第n项。做法:看一下 \(f_i\) 可否写成 \(a^p+b^q+...+c^r\)的形式,考虑 \(p,q,r\) 可以用加法递推(矩阵加速)求得。好吧,我这做过一个题

3.给出一个模拟,求n秒后的状态\((n<=10^{9})\) 做法:看一下状态转移能不能用矩阵乘法表示出来,如果能就想办法矩阵加速一下。

4.给出一个dp,求dp[n],\((n<=10^{9})\) 做法:把dp写出来,看一下能不能用矩阵乘法表示转移,如果能就想办法用矩阵加速一下。

5.给出一些加减乘除,做一些七七八八的东西。(雾 做法:看一下加减乘除符不符合矩阵乘法,如果符合就往矩阵上去想,看一下能不能矩阵乘法套出来(大雾

矩阵树

矩阵 总结

标签:基础   ems   def   enc   show   tps   乘法表   状态   rod   

原文地址:https://www.cnblogs.com/BaseAI/p/11952813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!