矩阵乘法
AcerMo
一只辣鸡大学生
展开
-
BZOJ1875[SDOI 2009] HH去散步
一道很玄学的矩阵乘法,平时我们构造的矩阵都是以点为基础,但是这样构造不能减去走过去再回来的情况,所以这道题用了一个非常玄学的以边为基础构造矩阵,构造矩阵时将一条无向边看成两条有向边,用了一条,另一条就不再用,用这个矩阵连乘t-1次,然后与与起点相连的边构造的矩阵相乘,最后统计与终点相连的边的值update 18-07-26发一份结构体版本的//By AcerMo#include&l...原创 2018-06-30 19:30:59 · 168 阅读 · 0 评论 -
BZOJ1297&&洛谷P4159 [SCOI2009]迷路
矩乘,和之前某道题类似,不过那道题给的是邻接01矩阵,可以直接快速幂,这道题有边权了,怎么办呢?mod一波大佬们,因为边权最大到九,所以大佬们把每个点拆成了9个点,然后a->b边权是7,就从a向b的第七个点连一条边,弄成01矩阵,然后在这个矩阵上跑矩乘,然后就过了,神奇代码//By AcerMo#include<cmath> #include<cstdio...原创 2018-09-01 18:39:23 · 237 阅读 · 0 评论 -
BZOJ2875&&洛谷P2044 [NOI2012]随机数生成器
矩阵快速幂+快速乘法不难构造出矩阵|a c| |x0 0| ...原创 2018-08-29 07:43:38 · 218 阅读 · 0 评论 -
洛谷P2233 [HNOI2002]公交车路线
矩阵乘法我们之前了解到一个01邻接矩阵的k次幂就是每个点经过k条边到达其他点的方案数,这个题也是代码//By AcerMo #include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define ll...原创 2018-07-20 20:56:47 · 337 阅读 · 0 评论 -
HDU3306Another kind of Fibonacci
题意是定义一个新的斐波那契数F[n]=x*F[n-1]+y*F[n-2],现在给你x和y让你求前n项的平方和S[n]=F[0]^2+....+F[n]^2怎么求呢?我们将F[n]和S[n]列出来F[n]=x*F[n-1]+y*F[n-2]S[n]=S[n-1]+F[n]^2联立一下发现 S[n]=S[n-1]+(x*F[n-1]+y*F[n-2])^2=S[n-1]+x^2*...原创 2018-07-20 20:26:33 · 223 阅读 · 0 评论 -
[NOIP模拟赛]Fy ' s Dota2
矩阵加速递推,身为不会构造矩阵的蒟蒻,我没有构造出来,所以滚粗了QAQ我们不难发现我们可用的步数只有1->k,那么我们就发现了一个有趣的性质,当前项i(i>=k)只与f[i-1]~f[i-k]有关,那么可以轻松的写出一个递推公式f[i]=Σ(j∈1->k)f[i-j],也就是说新矩阵和原矩阵的不同就在于将原矩阵平移一个单位,并将下一项填进去,下一项又满足f[i]等于前几项之和...原创 2018-07-20 16:58:37 · 213 阅读 · 0 评论 -
HDU1575Tr A
矩阵快速幂,别忘了mod就好//By AcerMo#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int mod=9973;int n,m;s...原创 2018-07-20 14:22:47 · 185 阅读 · 0 评论 -
BZOJ1009&&洛谷P3193 [HNOI2008]GT考试
令f[i][j]表示前i个字符,匹配到不吉利数字的第j位的方案数枚举第i+1位,通过KMP求出前i+1个字符可以匹配到不吉利数字的第几位,然后就可以递推了,然后发现n太大,那就矩阵呗(我果然还是太弱)代码(特色矩乘防伪)//By AcerMo #include<cmath>#include<cstdio>#include<cstring>#...原创 2018-07-25 18:02:22 · 232 阅读 · 0 评论 -
BZOJ1706&&洛谷P2886 [usaco2007 Nov]relays 奶牛接力跑
emm,看着很难。。我们发现边一共100条那么点最多也就200个,所以我们将点离散化到1~200然后我们想到,从一个点到另一个点走k条路的方案可以用矩阵加速,那么最短路是不是也可以呢?然后我们想到矩阵可以加速的东西必须满足可以使用结合/交换律,发现最短路符合,所以我们将运算方法重新定义一下,+->min,*->+代码//By AcerMo#include<cmath>#...原创 2018-07-02 09:35:33 · 271 阅读 · 0 评论 -
hdu2157How many ways??
矩阵路径方案的裸题,注意多组输入就好这里有一个需要说明的知识点是,一个01的邻接矩阵经过k次幂之后map[i][j]就是从i->j经过k条路径的方案代码//By AcerMo#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<alg...原创 2018-07-02 09:04:57 · 185 阅读 · 0 评论 -
BZOJ1898[ZJOI2005]沼泽鳄鱼
讲不清楚。。。。。。。//By AcerMo#include<cmath>#include<cstdio>#include<vector>#include<cstring>#include<iostream>#include<algorithm>using namespace std; const int mo...原创 2018-06-30 21:38:46 · 178 阅读 · 0 评论 -
POJ3070Fibonacci
矩阵乘法的入门题我们先回忆一下通过递推如何求得fib的第n项,用三个变量t1=0,t1=1,t2=t1+t0,.....然后开始递推,但是这样的时间复杂度会很高,若用数组递推,则空间复杂度很高,所以我们要找一个时间和空间复杂度都很优秀的算法,至此,我们引入了矩阵乘法顾名思义,矩阵乘法必然是矩阵之间的乘法,两个矩阵能相乘,当且仅当第一个矩阵的列数=第二个矩阵的行数,也就是说,一个n*m的矩阵,与一个...原创 2018-06-30 19:47:05 · 315 阅读 · 0 评论 -
BZOJ2326&&洛谷P3216 [HNOI2011]数学作业
矩阵乘法神题我一开始写了个这样的暴力,骗了40分//By AcerMo#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define lli long long int using namesp...原创 2018-09-04 19:16:35 · 233 阅读 · 0 评论