
矩阵
Sirius_Ren
▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇自己刮~~~
展开
-
POJ 3070 矩阵快速幂
题意: 让你用矩阵来找Fibonacci数 思路: 不用矩阵快速幂会TLE,只能学一下啦 (其实也不难)// by SiriusRen#include <cstdio>using namespace std;struct matrix{ int a[2][2]; void init(){a[0][0]=a[1][0]=a[0][1]=1;a[1][1]=0;}};m原创 2016-07-17 19:51:14 · 262 阅读 · 0 评论 -
BZOJ 1898 构造矩阵+矩阵快速幂
思路: T的最小公倍数是12 那么12以内暴力 整除12 的部分用矩阵快速幂//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n,m,st,ed,k,nfish,T,p[5],can[13][55];struct Matrix{ int a[原创 2017-01-11 11:28:37 · 431 阅读 · 0 评论 -
BZOJ 3240 构造矩阵+矩阵快速幂
思路:ax+b cx+d 构造矩阵+矩阵快速幂 (需要加各种特判,,,,我好像加少了… )//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define int long longconst int mod=1000000007;int n,m,a,b原创 2017-01-10 15:03:55 · 551 阅读 · 0 评论 -
BZOJ 2553 AC自动机+矩阵快速幂 (神题)
思路: 我们先对所有读进来的T建一个AC自动机 因为走到一个禁忌串就需要回到根 所以呢 搞出来所有的结束点 或一下 fail指针指向的那个点然后我们就想转移 a[i][j]表示从i节点转移到j节点的概率 如果能够转移到 ans+=1÷alphabet 这里有一个trick 建一个size+1节点 如果回到了根 就连到size+1 a[size+1][size+1]=1 这样就原创 2016-12-09 16:14:59 · 705 阅读 · 0 评论 -
POJ 3213 矩阵乘法(优化)
思路: 1.暴力出奇迹 n=1000 n^3矩阵乘法竟然能卡过。。。(Tips:不要乱写读入优化,这玩意儿加了超时,不加AC……)2. 注意题目中的“最多只能有一个地方不一样,,” 我就想到了 能不能用一行的和来优化一下。。一次算一行 我们可以手动模拟一下。。 发现了一个规律…… (本人的草稿纸…… 略乱) 我就模拟了一下答案的第一行。。 发现: 先统计一个sumb[i] +原创 2016-09-04 17:20:19 · 887 阅读 · 0 评论 -
POJ 3660 Floyd传递闭包
题意:牛有强弱,给出一些牛的强弱的胜负关系,问可以确定几头牛的排名。 思路: Floyd传递闭包 // by SiriusRen#include <bitset>#include <cstdio>using namespace std;#define f(x) for(int x=1;x<=n;x++)bitset<105>map[105];int n,m,jyx,jyy,an原创 2016-08-06 14:50:14 · 557 阅读 · 0 评论 -
POJ 3150 循环矩阵的应用
思路:首先 先普及一个性质: 循环矩阵*循环矩阵=循环矩阵 由于此题是距离小于d的都加上一个数。 那么 构造矩阵的时候 我们发现 诶呦 这是个循环矩阵 看看数据范围 n^2log(k)可以过。 那就把这个矩阵改一改。 因为这是个循环矩阵, 所以呢 只用保存一行就可以了。 每回做乘法的时候只做第一行的乘法。 for(i) for(j) temp[i]+=a原创 2016-07-21 16:36:08 · 828 阅读 · 0 评论 -
HDU4920 矩阵乘法
嗯嗯 就算是水题吧。 (缩完行就15行) 题意:两个n*n的矩阵相乘(n<=800),结果对3取模 思路:先对3取模,所以两个矩阵里面会出现很多0,所以可以先枚举一个矩阵,只有当该位置不是0的时候才和另一个矩阵做乘法。 取模的时候也有技巧,,不要在计算的途中取模,,, 应该读入的时候取一次模,输出的时候取一次模 计算量会小很多。// by SiriusRen#include <cstd原创 2016-07-20 23:15:27 · 920 阅读 · 0 评论 -
POJ 3233 矩阵快速幂&二分
题意: 给你一个n*n的矩阵 让你求S: 思路: 只知道矩阵快速幂 然后nlogn递推是会TLE的。所以呢 要把那个n换成log那这个怎么搞呢二分!当k为偶数时: 当k为奇数时: 就按照这么搞就能搞出来了 (我是看的题解才A的,,, 中间乱搞的时候犯了一些脑残的错误)// by SiriusRen#include <cstdio>#include <cstring>u原创 2016-07-20 22:30:20 · 715 阅读 · 0 评论 -
HDU 1757 矩阵快速幂加速递推
题意: 已知: 当x<10时:f(x)=x 否则:f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + ……+ a9 * f(x-10); 求:f(x)%m的值。 思路: 矩阵快速幂加速递推。 嗯嗯// by SiriusRen#include <cstdio>#include <cstring>using namespace std;原创 2016-07-18 21:44:14 · 1434 阅读 · 0 评论 -
HDU 1575 矩阵快速幂裸题
题意:中文题 我就不说了吧,。。。 思路:矩阵快速幂// by SiriusRen#include <cstdio>#include <cstring>using namespace std;int cases,n,k,mod=9973,ans;struct matrix{int a[100][100];matrix(){memset(a,0,sizeof(a));}}first,cp原创 2016-07-18 20:13:28 · 402 阅读 · 0 评论 -
BZOJ 4547 矩阵快速幂
思路: 肯定每回只加最大值和次大值如果 一开始的最大值>0且次大值<0 那就一直加 加到次大值>0搞一个矩阵 推斐波那契数列 求和 就好…//By SiriusRen#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int mod=10000007,N=100050;#de原创 2017-03-04 20:53:42 · 358 阅读 · 0 评论