- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
矩阵乘法 精讲.ppt
矩阵乘法 矩阵乘法是一种高效的算法可以把一些一维递推优化到log( n ),还可以求路径方案等,所以更是是一种应用性极强的算法。矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。由于它把许多数据紧凑的集中到了一起,所以有时候可以简便地表示一些复杂的模型。矩阵乘法看起来很奇怪,但实际上非常有用,应用也十分广泛。 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置。操作有平移、缩放、翻转和旋转 这里的操作是对所有点同时进行的。其中翻转是以坐标轴为对称轴进行翻转(两种情况),旋转则以原点为中心。如果对每个点分别进行模拟,那么m个操作总共耗时O(mn)。利用矩阵乘法可以在O(m)的时间里把所有操作合并为一个矩阵,然后每个点与该矩阵相乘即可直接得出最终该点的位置,总共耗时O(m+n)。假设初始时某个点的坐标为x和y,下面5个矩阵可以分别对其进行平移、旋转、翻转和旋转操作。预先把所有m个操作所对应的矩阵全部乘起来,再乘以(x,y,1),即可一步得出最终点的位置。 由于矩阵乘法具有结合律,因此A^4 = A * A * A * A = (A*A) * (A*A) = A^2 * A^2。 我们可以得到这样的结论: 当n为偶数时,A^n = A^(n/2) * A^(n/2); 当n为奇数时,A^n = A^(n/2) * A^(n/2) * A (其中n/2取整)。 这就告诉我们,计算A^n也可以使用二分快速求幂的方法。例如,为了算出A^25的值,我们只需要递归地计算出A^12、A^6、A^3的值即可。根据这里的一些结果,我们可以在计算过程中不断取模,避免高精度运算。 题目: VOJ1049 题目大意:顺次给出m个置换,反复使用这m个置换对初始序列进行操作,问k次置换后的序列。m=10, k2^31。 POJ2778 题目大意:检测所有可能的n位DNA串有多少个DNA串中不含有指定的病毒片段。合法的DNA只能由ACTG四个字符构成。题目将给出10个以内的病毒片段,每个片段长度不超过10。数据规模n=2 000 000 000。 VOJ1067 poj3233: Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m 104). Then follow n lines each containing n nonnegative integers below 32,768, giving A’s elements in row-major order. Output Output the elements of S modulo m in the same way as A is given. Sample Input 2 2 4 0 1 1 1 Sample Output 1 2 2 3 题意:已知一个n*n的矩阵A,和一个正整数k,求S = A + A2 + A3 + … + Ak。输出的数据mod m。 思路:矩阵快速幂。首先我们知道 A^x 可以用矩阵快速幂求出来。其次可以对k进行二分,每次将规模减半,分k为奇偶两种情况,如当k = 6和k = 7时有: k = 6 有: S(6) = (1 + A^3) * (A + A^2 + A^3) = (1 + A^3) * S(3)。 k = 7 有: S(7) = A + (A + A^4) * (A + A^2 + A^3) = A + (A + A^4) * S(3)。 则: 当k为偶数时,s(k)=(1+A^(k/2))*(A+A^2+…+A^(k/2)) 当k为奇数时,s(k)=A+(A+A^(k/2+1))*(A+A^2+…+A^(k/2)) ps:对矩阵定义成结构体Matrix,求S时用递归,程序会比较直观,好写一点。当然定义成数组,然后再进行一些预处理,效率会更高些。 源代码: #includeiostream using namespace std; const int MAX = 32; struct Matrix //定义结构体Matrix { int v[MAX][MAX]; }; int n, k,
您可能关注的文档
- 江浙二级精讲上课版.ppt
- 江科大 第2章 力系的简化.ppt
- 江苏大学 干事培训.ppt
- 江苏大学 陈静 省十佳青年学生答辩.ppt
- 江苏大学c语言课件第一章.ppt
- 江苏大学SRA.ppt
- 江苏大学机械原理及设计第三章 机械零件的强度.ppt
- 江苏大学电气1201主题PPT.ppt
- 江苏省地税网上申报CA应用培训教材new.ppt
- 江苏省如皋市第一中学讲座稿.ppt
- 移动医护系统介绍优质PPT课件.ppt
- 西方文化导论Unit专题培训课件.ppt
- 新版数学建模实验指导书样本.doc
- 2.5.2追及相遇问题(共20张ppt)(含音频+视频).pptx
- 第21课世界殖民体系的瓦解与新兴国家的发展授课课件(共25张PPT)(含音频+视频).pptx
- 六年级下册2.7保护生物的多样性课件(共24张PPT)(含音频+视频).pptx
- 汉语拼音7《zcs》课件(含音频+视频).pptx
- 外研版九年级上册Module10AustraliaUnit1课件+音频(共19张PPT)(含音频+视频).pptx
- 统编版五年级语文下册9古诗三首秋夜将晓出篱门迎凉有感课件(共21张PPT)(含音频+视频).pptx
- 第20课社会主义国家的发展与变化课件(共26张PPT)必修中外历史纲要(下)(含音频+视频).pptx
文档评论(0)