本文来自:http://www.matrix67.com/blog/archives/tag/poj大牛的博文学习学习 节选如下部分:矩阵乘法的两个重要性质:一,矩阵乘法不满足交换律:二,矩阵乘法满足结合律经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转    这 里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心.如果对每个点分别进行模拟,那么m个操作总共耗时 O(mn).利用矩阵乘法可…
好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质.    不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符.在数学中,一个矩阵说穿了就是一个二维数组.一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和.比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵…
1.定义: $c[i][j]=\sum a[i][k]\times b[k][j]$ 所以矩阵乘法有条件,(n*m)*(m*p)=n*p 即第一个矩阵的列数等于第二个矩阵的行数,否则没有意义. 2.结合律与分配率 矩阵乘法不一定任何时候都有交换律.因为交换后甚至不能保证第一个矩阵的列数等于第二个矩阵的行数. 但是,矩阵乘法有结合律. A*B*C=A*(B*C) 这是一个最常用的运算律,使之可以用矩阵快速幂. 3.构造技巧. 矩阵乘法主要用途还是矩阵加速dp. 例如什么n=1e9之类的. 关键还是…
B20J_1297_[SCOI2009]迷路_矩阵乘法 题意:有向图 N 个节点,从节点 0 出发,必须恰好在 T 时刻到达节点 N-1.总共有多少种不同的路径? 2 <= N <= 10 : 1 <= T <= 1000000000   边权范围[1,9]. 分析:首先看题目数据性质,N很小,即使是完全图边数也不会超过100.因此我们可以利用矩阵乘法优化. 如何优化:1.我们发现,当边权为1时每走一步就相当于乘上一次图的邻接矩阵.可以用矩阵快速幂O(N^3*logT)快速解决:…
DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14758 Accepted: 5716 Description It's well known that DNA Sequence is a sequence only contains A, C, T and G, and it's very useful to analyze a segment of DNA Sequence,For exampl…
对这个题目的最初理解 开始看到这个题,觉得很水,直接写了一个最简单地动态规划,就是定义 f[i][j]为到了i节点路径长度为j的路径总数, 转移的话使用Floyd算法的思想去转移,借助这个题目也理解了为什么floyd要把k放在最外面,也是类似的道理. 这样就写了下面代码中的version1.但是连样例也无法通过. 我又重新仔仔细细读了一遍题,发现不可以走回头路. 然后我就一直在考虑如何避免走回头路,但是想了一个小时,也想不出一个合理的猜想,每一个猜想有非常大的局限性. 然后就上网翻题解,发现可以…
VOJ1067 我们可以用上面的方法二分求出任何一个线性递推式的第n项,其对应矩阵的构造方法为:在右上角的(n-1)*(n-1)的小矩阵中的主对角线上填1,矩阵第n行填对应的系数,其它地方都填0.例如,我们可以用下面的矩阵乘法来二分计算f(n) = 4f(n-1) - 3f(n-2) + 2f(n-4)的第k项: 利用矩阵乘法求解线性递推关系的题目有很多,这里给出的例题是系数全为1的情况. 给定一个有向图,问从A点恰好走k步(允许重复经过边)到达B点的方案数mod p的值 把给定的图转为邻接矩阵…
题目描述 题解 矩阵乘法 考虑把相同位数的数放到一起处理: 设有$k$位的数为$[l,r]$,那么枚举从大到小的第$i$个数(即枚举$r-i+1$),考虑其对$Concatenate(l..r)$的贡献: $v_i=(r-i+1)10^{k(i-1)}$ 所以要求的就是: $\sum\limits_{i=1}^{r-l+1}(r-i+1)10^{k(i-1)}\mod m\ =\ \sum\limits_{i=0}^{r-l}(r-i)10^{ki}\mod m$ 这个式子可以使用矩阵乘法解决.…
题目描述 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 输入 第一行包含三个整数n,m,k(1<=n<=40,1<=m<=1000,1<=k<=10^18).接下来m行,每行三个整数u,v,c(1<=u,v<=n,u不等于v,1<=c<=3),表示从u出发有一条到v的单向边,边长为c.可能有重边. 输出 包含一行…
2016-06-01 16:53:23 题目链接: 矩阵乘法 (Codevs No.1287) 题目大意: 给你两个可乘矩阵a,b,求a*b 解法: 定义....... //矩阵乘法 (Codevs No.1287) //矩阵乘法 #include<stdio.h> #include<algorithm> using namespace std; ; int a,b,c,d; int map1[maxn][maxn]; int map2[maxn][maxn]; int map3[…