数学-矩阵
文章平均质量分 79
FDU_Nan
去做一个会思考,善于思考的人儿。
展开
-
矩阵经典题目七:Warcraft III 守望者的烦恼(矩阵加速递推)
https://www.vijos.org/p/1067 很容易推出递推式f[n] = f[n-1]+f[n-2]+......+f[n-k]。 构造矩阵的方法:构造一个k*k的矩阵,其中右上角的(k-1)*(k-1)的矩阵是单位矩阵,第k行的每个数分别对应f[n-1],f[n-2],,f[n-k]的系数。然后构造一个k*1的矩阵,它的第i行代表f[i],是经过直接递推得到的。设ans原创 2014-08-07 19:15:35 · 2953 阅读 · 0 评论 -
hdu 5015 233 Matrix(构造矩阵)
http://acm.hdu.edu.cn/showproblem.php?pid=5015 因为是个二维的递推式,当时没有想到可以这样构造矩阵。从列上看,当前这一列都是由前一列递推得到。根据这一点来构造矩阵。令b[i]代表第i列,是一个(n+2)*1的矩阵,即b[1] = [1,233......],之所以在加了两行,是要从前一个矩阵b[i-1]得到b[i]中的第二个数2333...,原创 2014-09-17 20:58:31 · 1064 阅读 · 0 评论 -
poj 3735 Training little cats(构造矩阵)
http://poj.org/problem?id=3735 大致题意: 有n只猫,开始时每只猫有花生0颗,现有一组操作,由下面三个中的k个操作组成: 1. g i 给i只猫一颗花生米 2. e i 让第i只猫吃掉它拥有的所有花生米 3. s i j 将猫i与猫j的拥有的花生米交换 现将上述一组操作循环m次后,问每只猫有多少颗花生? 再一次感受到了原创 2014-06-13 17:16:55 · 934 阅读 · 0 评论 -
矩阵经典题目六:poj 3070 Fibonacci
http://poj.org/problem?id=3070 按已构造好的矩阵,那么该矩阵的n次方的右上角的数便是f[n]。 #include #include #include #include #include #include #include #include #include #include #include #incl原创 2014-08-07 09:43:57 · 890 阅读 · 0 评论 -
poj 3150 Cellular Automaton(矩阵快速幂)
http://poj.org/problem?id=3150 大致题意:给出n个数,问经过K次变换每个位置上的数变为多少。第i位置上的数经过一次变换定义为所有满足 min( abs(i-j),n-abs(i-j) ) 思路: 我们先将上述定义表示为矩阵 B = 1 1 0 0 1 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0 0 1 1原创 2014-06-12 21:09:08 · 972 阅读 · 0 评论 -
矩阵经典题目三:poj 3233 Matrix Power Series(等比矩阵求和)
http://poj.org/problem?id=3233 ps转: 用二分方法求等比数列前n项和:即 原理: (1)若n==0 (2)若n%2==0 (3)若n%2==1 代码如下: LL sum(LL p,LL n) { if(n==0) return 1; i原创 2014-06-12 17:13:31 · 1954 阅读 · 0 评论 -
矩阵快速幂
复杂度为o(n^3logk) /* 求 a^k % mod,其中a是n*n的矩阵 */ const int mod = 10000; const int maxn = 2; _LL k; int n; struct matrix { _LL mat[maxn][maxn]; } a,res; matrix mul(matrix x, matrix y) { matrix tmp原创 2014-06-12 13:02:31 · 893 阅读 · 0 评论 -
矩阵经典题目八:hdu 2175 How many ways??
http://acm.hdu.edu.cn/showproblem.php?pid=2157 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 把给定的图转为邻接矩阵,即A(i,j)=1当且仅当存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),实际上就等于从点i到点j恰好经过2条边的路径数(枚举k为中转点)。原创 2014-08-08 08:33:10 · 1012 阅读 · 0 评论 -
hdu 4920 Matrix multiplication(矩阵坑题)
http://acm.hdu.edu.cn/showproblem.php?pid=4920 被这道题虐了一下午,啥也不说了。继续矩阵吧。 超时就超在每步取余上,要放在最后取余,再者注意三个循环的次序。 #include #include #include #include #include #include #include #include #includ原创 2014-08-06 09:59:47 · 748 阅读 · 0 评论 -
矩阵经典题目四:送给圣诞夜的礼品(使用m个置换实现对序列的转变)
https://vijos.org/p/1049 给出一个序列,含n个数。然后是m个置换,求对初始序列依次进行k次置换,求最后的序列。 先看一个置换,把置换表示成矩阵的形式,然后将m个置换乘起来。那么初始序列首先执行这个置换k/m次,然后顺次执行前k%m个置换,最后乘上初始矩阵。 最后注意矩阵乘法的顺序,A*B != B*A。 #include #include原创 2014-08-07 08:28:53 · 1079 阅读 · 0 评论 -
矩阵的十大经典题目
经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置。操作有平移、缩放、翻转和旋转 这里的操作是对所有点同时进行的。其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心。如果对每个点分别进行模拟,那么m个操作总共耗时O(mn)。利用矩阵乘法可以在O(m)的时间里把所有操作合并为一个矩阵,然后每个点与该矩阵相乘即可直接得出最终该点的位置,总共耗时O转载 2014-08-08 09:27:53 · 1091 阅读 · 0 评论 -
zoj 2317 Nice Patterns Strike Back(矩阵乘法)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1317 给出一个n*m的矩阵(n 构造出转移矩阵,上一行向下一行的转移矩阵,因为m 因为n特别大,要用到大数。我存矩阵的时候开始定义的大数类,一直T,改成了int型才A,1s+,难道大数类这么慢么,5s都过不了。 import java.原创 2014-10-10 21:17:12 · 1334 阅读 · 0 评论