
数学-矩阵
文章平均质量分 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 · 3035 阅读 · 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 · 1097 阅读 · 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 · 973 阅读 · 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 · 945 阅读 · 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 11 1 1 0 00 1 1 1 00 0 1 1 11 0 0 1 1原创 2014-06-12 21:09:08 · 1000 阅读 · 0 评论 -
矩阵经典题目三:poj 3233 Matrix Power Series(等比矩阵求和)
http://poj.org/problem?id=3233ps转:用二分方法求等比数列前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 · 2050 阅读 · 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 · 922 阅读 · 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 · 1074 阅读 · 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 · 778 阅读 · 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 · 1141 阅读 · 0 评论 -
矩阵的十大经典题目
经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置。操作有平移、缩放、翻转和旋转 这里的操作是对所有点同时进行的。其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心。如果对每个点分别进行模拟,那么m个操作总共耗时O(mn)。利用矩阵乘法可以在O(m)的时间里把所有操作合并为一个矩阵,然后每个点与该矩阵相乘即可直接得出最终该点的位置,总共耗时O转载 2014-08-08 09:27:53 · 1139 阅读 · 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 · 1395 阅读 · 0 评论