
数学—矩阵乘法
文章平均质量分 73
My_ACM_Dream
生活没有彩排每天都是现场直播
展开
-
poj 2778 DNA Sequence (ac自动机+矩阵加速)
题意:计算不包含病毒串的串的个数,长度n题解:没法用dp啊。矩阵加速,这个应用了矩阵的性质。矩阵n次幂,对应的点ij表示i经过n个节点到j路径的个数。被各种卡时间啊,结果发现是自己的矩阵乘法写残了。#include#include#include#include#include#include#include#include#includeusing name原创 2015-02-27 17:10:00 · 611 阅读 · 0 评论 -
acdream 1116 Gao the string! (扩展kmp,dp思想,矩阵优化)
题意:题目要求每个后缀能包含多多少前缀,只不过这个数作为斐波那契的下标,求出对应斐波那契的和。题解:首先对于要计算出对应的后缀包含多少前缀,如果单单指考虑这样某个后缀能和多少前缀重合,可以通过扩展kmp求得。因为是求后缀对应的某个子串能包含多少前缀,因此要从后往前递推累加,然后同时计算对应的斐波那契数。开始的时候打斐波那契数的表,想找到循环节通过模处理,但是太大了,打不了,开始还因为这原创 2015-05-10 00:57:19 · 604 阅读 · 0 评论 -
hdu 2865 Birthday Toy (polya,好题)
题意:有一个环由n个组合和一个中心珠子组成,现在有k中颜色,问相邻的不能同色的染色方案数。题解:这题的n很大所以只能枚举约数gcd(n,i)=r,但是k也超级大,完全无法用关系矩阵解决。那么要考虑是否有规律。对于中心有珠子的这种染色法,明显可以枚举中心珠子的颜色,然后计算k-个颜色嫩染多少种的情况,最后乘以k即可。我们可以枚举外围的第一个珠子颜色,然后用dp解决这种排列问题。现在假设枚原创 2015-04-23 16:18:16 · 844 阅读 · 0 评论 -
hdu 5171 GTY's birthday gift (构造矩阵)
题意:给出n个数的集合,集合允许有重复的数,每次选集合两个数相加加到集合里面,可以操作k次,问集合的和最大是多少。题解:会发现其实每次都选择最大的两个加,这样就形成了类似斐波那契的数列。构造矩阵解之。#include#include#include#include#include#include#include#include#includeusing原创 2015-02-26 19:21:44 · 538 阅读 · 0 评论 -
poj 3070 Fibonacci (矩阵构造,水)
#include#include#include#include#include#include#include#include#includeusing namespace std;#define B(x) (1<<(x))typedef long long ll;const int oo=0x3f3f3f3f;const ll OO=1LL<<61;const ll原创 2015-02-26 19:41:39 · 405 阅读 · 0 评论 -
poj 3613 Cow Relays (floyd快速幂)
题意:给出一个带权图,问S到E恰好经过N个点的最短路。题解:floyd版的矩阵快速幂。好强大。#include#include#include#include#include#include#include#include#includeusing namespace std;#define B(x) (1<<(x))typedef long long原创 2015-02-27 13:19:50 · 552 阅读 · 0 评论 -
poj 3233 Matrix Power Series (构造矩阵)
等比矩阵性质#include#include#include#include#include#include#include#include#includeusing namespace std;#define B(x) (1<<(x))typedef long long ll;const int oo=0x3f3f3f3f;const ll OO=1LL<<原创 2015-02-26 20:13:45 · 427 阅读 · 0 评论 -
矩阵快速幂
矩阵快速幂和普通快速幂写法相似。struct Matrix{ int maze[maxn][maxn]; void Init() { for(int i=0;i<n;i++) for(int j=0;j<n;j++) maze[i][j]=(i==j); } friend Ma原创 2015-02-26 15:26:47 · 466 阅读 · 0 评论 -
hdu 1588 Gauss Fibonacci (构造矩阵)
题意:计算这样的斐波那契数的和fb(g(i)) g(i)=k*i+b;n题解:直接算肯定超时,构造矩阵,用矩阵快速幂解决。参考HERE公式不好推。#include#include#include#include#include#include#include#include#includeusing namespace std;#define B(x原创 2015-02-26 17:46:42 · 570 阅读 · 0 评论 -
hdu 3962 Microgene (ac自动机+矩阵优化(好题))
题意:给出n个串,现在要求长度为L的串至少包含着n个串中的两个串的个数。题解:一看这种计数类问题要么dp,要么矩阵乘法。dp明显内存时间都爆。那么可以考虑用矩阵乘法,首先如果直接用矩阵存不包含任意n个字符串,L次幂,将maze[0][i]相加得到长度为L的不包含任何n个串对应串的个数,然后在计算全部的情况,这样就缺包含一个字符串对应串的个数这个方案了,之前用枚举N个字符串哪个出现了进行原创 2015-03-03 19:38:38 · 635 阅读 · 0 评论 -
SPOJ 1676 Text Generator (ac自动机+矩阵优化)
题意:给出n个单词,求这些单词能组成的文章个数,文章的单词数L个。题解:各种TL,一个黑色的晚上。不知道为什么,自己写的矩阵乘法异常的慢,从类改成写简陋的C格式,都TL了,发现是取模太多次的缘故,于是改成加完在摸,结果wa了,坑爹,然后改成longlong TL了,简直无情啊。最后用了无符号int即不会爆int也不像longlong那么耗费时间。于是就过了。。。。#include#i原创 2015-03-02 20:21:00 · 653 阅读 · 0 评论 -
hdu 2243 考研路茫茫——单词情结 (ac自动机+矩阵优化)
题意:这题简直是个奇葩的题目。题目各处n个串,然后要求长度小与等于n且包含着n个串至少一个串的串的个数。题解:首先我们构造一个字典图节点个数的矩阵,这样可以求出长度等于L不包含n个串的个数,那么把之前的矩阵看成一个部分,这样求 { f[n] , 1 } = { f[n-1] , 1 } *{ 原矩阵 0 ; 1 1 }这样就可以求出不包含且小于等于的个数,然后用总数-这个就得出了原创 2015-02-28 15:57:02 · 605 阅读 · 0 评论 -
acdream 1060 递推数 (找循环节,矩阵乘法)
题意:已知A(0) = 0 , A(1) = 1 , A(n) = 3 * A(n-1) + A(n-2) (n ≥ 2)求 A(A(A(A(N)))) Mod (1e9 + 7)题解:因为任何数取摸到最后都会形成循环节,于是只要找到每层中循环节的大小,热按后用摸上循环节的结果作为标号不断迭代。找到循环节后,就是赤裸裸的矩阵乘法。#include#include#i原创 2015-04-30 18:24:20 · 768 阅读 · 0 评论