矩阵总结
By Wine93 2013.7
1.学习资料:
2. 矩阵最常见的5个作用
1. 求线性递推第n项 (POJ 3070 HDU 1757)
2. 已经线性递推式,求递推式中任意区间内的和,解这类题目有2种方法 (POJ 3233 非常经典的一题)
a) 递推式中的每一项相当于一个矩阵幂,求项和就相当于求矩阵幂和,而求矩阵幂和,又可以2分 (HDU 1588)
b) 在矩阵上加上一维记录和 S(n)=S(n-1)+f(n) 在求f(n)的时候顺便把s(n)也求出来了 (FZU 1683)
3. 对一系列数进行各种变换(加,减,乘,除,交换,异或,与等等....) (POJ 3735 HDU 2276)
4. 求a->b恰好走k步的的方案数 (HDU 2157)
5. 状态转移(灵活,设计好状态即可) (HDU 2604)
3.矩阵最常见的2个优化:
1. 循环矩阵优化 (POJ 3150 HDU 2276)
循环矩阵:本行的每一项都是右上一行的每一项右移一个位置得到
Ex: 1 0 0 0 1
1 1 0 0 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
(如上,就是个循环矩阵)
根据循环矩阵的性质,循环矩阵乘以循环矩阵还是循环矩阵,所以我们在计算时,只要计算出第一行,就可以递推得到整个矩阵,所以可以将复杂度从O(n^3)降到O(n^2)
2. 无效元素(0元素)的去除 (POJ 3735)
在做题中会发现矩阵中出现大量的0元素,而这些元素在矩阵乘的时候是不发挥任何作用的,所以我们可以跳过这些0元素(通过改变乘的顺序)
4.经典例题讲解
1.HDU 1757 A Simple Math Problem 题解link
2.POJ 3233 Matrix Power Series 题解link
3.HDU 1588 Gauss Fibonacci 题解link
4.FZU 1588 纪念SlingShot 题解link
5.HDU 2276 Kiki & Little Kiki 2 题解link
6.HDU 2157 How many ways?? 题解link
7. POJ 3420 Quad Tiling 题解link
1.HDU 1757 A Simple Math Problem 题解link
2.POJ 3233 Matrix Power Series 题解link
3.HDU 1588 Gauss Fibonacci 题解link
4.FZU 1588 纪念SlingShot 题解link
5.HDU 2276 Kiki & Little Kiki 2 题解link
6.HDU 2157 How many ways?? 题解link
7. POJ 3420 Quad Tiling 题解link
5.其余题目
HDU 3483 A Very Simple Problem (构造十分巧妙)
HDU 2855 Fibonacci Check-up (构造十分巧妙)
HDU 4549 M斐波那契数列 (A^B%C=A^( B%phi(c)+phi(c)) %C B>=phi(c))
ZJU 2853 2974 3497 (历年浙江省省赛矩阵题,好题)