矩阵快速幂
nlj1999
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj 1494: [NOI2007]生成树计数
55555555555555555555555555555555被虐哭了调了两个小时才调出来,简直不要太坑。论文还是比较良心的,就是初始矩阵好难构造的说。最后迫不得已写了个很挫的方法构造。#include#include#include#includeusing namespace std;typedef long long ll;const int p=65521;原创 2016-03-20 20:31:11 · 674 阅读 · 0 评论 -
SPOJ 1676 GEN - Text Generatord
一眼题。。。。。论文里讲了一大堆其实就是ac自动机上乱搞嘛。然后就是论如何把一道水题出成神题,技巧就是……卡常数。。。。。。。首先会发现某些情况下trie树的很多节点都到不了(比如说根节点的A子节点是叶子,于是所有串只要到A全都cut了)所以存在大量的无用状态,全部剪掉就能过了。话说现在才发现原来ac自动机的fail指针和kmp的fail一样可以通过一个循环遍历所有的(既是前缀原创 2016-03-21 08:37:53 · 579 阅读 · 0 评论 -
BZOJ 1898: [Zjoi2005]Swamp 沼泽鳄鱼
邻接矩阵求路线数特殊性在于周期,不过求下LCM还是可以搞的。可以发现图是周期变化的,以12为一周期,于是建13个邻接矩阵,第13个为前12个的乘积,于是有G(K)=(G(13))^(k/12)*(G(1)*G(2)*……*G(k%12)),O(n^3*logk)话说没注意邻接矩阵的含义WA了一次是闹哪样。。。。。#include#include#includeusing na原创 2016-03-21 09:43:50 · 694 阅读 · 0 评论 -
poj 3613 Cow Relays
这是什么鬼??????floyd+矩阵乘法?????不是很懂你们奶牛,真会玩。问题是求无向图上两点间经过k条边的最短路。定义floyd矩阵乘法(我瞎扯的)为A[i][j]=min(B[i][k]+C[k][j])然后发现这个满足结合律哎。如果B为经过x条边的答案,C为经过y条边的答案,那么A为经过x+y条边的答案好神奇于是就可以直接套矩阵快速幂了。真是6的不行原创 2016-03-21 10:17:03 · 252 阅读 · 0 评论 -
BZOJ 2004: [Hnoi2010]Bus 公交线路
矩阵乘法优化状压DP首先通过枚举做法分析可以把当前状态表示为P个格子内有k辆车的分布。状态数最大是C(5,10)=252,可以考虑用矩阵乘法转移(然后就T了,而且还会WA)但其实并没有这么多考虑第一位为0的状态,是不合法的不然我们就可以跨过一些站了所以状态数最多是C(4,9)=126然后就过了好水#include#include#include#inclu原创 2016-04-01 19:21:35 · 518 阅读 · 0 评论 -
BZOJ 2326: [HNOI2011]数学作业
还以为有什么奥妙重重的数学公式结果没想到是矩乘……#include#include#includeusing namespace std;typedef long long ll;int m;struct matrix{ ll a[3][3]; void print(){ for(int i=0;i<3;i++){ for(int j=0;j<3;j++)原创 2016-04-02 11:38:00 · 299 阅读 · 0 评论 -
BZOJ 4597: [Shoi2016]随机序列
很可做的一道题考虑一下一段序列的答案为b+x,x为最右连续一段是乘积,然后和为x,b则为对应的左边的和然后考虑在右边加一个数k,分类讨论一下发现x'=kx,b'=2x+3b于是就可以DP了然后DP可以矩阵转移于是就可以用线段树维护矩阵就水过去了(好像很简单哎,AC率好高的说)#include#include#include#include#include#原创 2016-05-27 15:46:31 · 639 阅读 · 0 评论
分享