矩阵
outer_form
OI/ACM
展开
-
矩阵快速幂模板
void mul(matrix a,matrix b,matrix c){ matrix d={{0}}; int i,j,k; for(i=1;i<=n;i++) for(j=1;j<=n;j++) for(k=1;k<=n;k++) d[i][j]=(d[i][j]+a[i][k]*b[k][j])%原创 2016-01-21 21:03:53 · 334 阅读 · 0 评论 -
【矩阵+十进制快速幂】[NOI2013]矩阵游戏
题目描述婷婷是个喜欢矩阵的小朋友,有一天她想用电脑生成一个巨大的 nn 行 mm 列的矩阵(你不用担心她如何存储)。她生成的这个矩阵满足一个神奇的性质: 若用 Fi,jF_{i,j} 来表示矩阵中第 ii 行第 jj 列的元素,则 Fi,jF_{i,j} 满足下面的递推式:⎧⎩⎨⎪⎪F1,1Fi,jFi,1===1a⋅Fi,j−1+bc⋅Fi−1,m+dj≠1i≠1\begin{cases}F_原创 2016-07-07 22:22:16 · 566 阅读 · 0 评论 -
【矩阵乘法】[NOI2013]向量内积
题目描述两个 dd 维向量 A=[a1,a2,…,ad]A=[a_1,a_2,\dots,a_d] 与 B=[b1,b2,…,bd]B=[b_1,b_2,\dots,b_d] 的内积为其相对应维度的权值的乘积和,即:⟨A,B⟩=∑i=1daibi=a1b1+a2b2+⋯+adbd\begin{equation}\langle A, B\rangle = \sum_{i = 1}^{d} a_i b原创 2016-07-04 21:24:33 · 1237 阅读 · 0 评论 -
【矩阵快速幂】[NOI2012]随机数生成器
题目描述栋栋最近迷上了随机算法,而随机数生成是随机算法的基础。栋栋准备使用线性同余法(Linear Congruential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 m,a,c,X0,按照下面的公式生成出一系列随机数<Xn>: Xn+1=(aXn+c) MOD m; 其中 MOD m 表示前面的数除以 m 的余数。从这个式子可以看出,这个序列的下一个数总是由上一个数原创 2016-07-13 10:44:00 · 500 阅读 · 0 评论 -
【矩阵快速幂】[NOI2011]兔农
题目描述Description 农夫栋栋近年收入不景气,正在他发愁如何能多赚点钱时,他听到隔壁的小朋友在讨论兔子繁殖的问题。问题是这样的:第一个月初有一对刚出生的小兔子,经过两个月长大后,这对兔子从第三个月开始,每个月初生一对小兔子。新出生的小兔子生长两个月后又能每个月生出一对小兔子。问第n个月有多少只兔子?聪明的你可能已经发现,第n个月的兔子数正好是第n个Fibonacci(斐波那契)数。栋栋不懂原创 2016-07-13 09:26:48 · 531 阅读 · 0 评论 -
【矩阵快速幂】[2016"百度之星" - 初赛(Astar Round2A)]All X
题目Problem Description F(x,m)F(x,m) 代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立:F(x,m)modk≡cF(x,m) mod k ≡ cInput 第一行一个整数T,表示T组数据。 每组测试数据占一行,包含四个数字x,m,k,cx,m,k,c1≤x≤91≤x≤9 1≤m≤10101≤m≤10100≤c<k≤10,0000≤c<k≤10,000原创 2016-05-21 21:37:04 · 449 阅读 · 0 评论 -
【DP+矩阵优化】[HNOI2008][HYSBZ/BZOJ1009]GT考试
题目链接分析令fi,jf_{i,j}表示匹配计算到准考证第i位,后缀最大可以匹配不吉利数字的前j位 fi,j=∑kA1....Aj是A1....Akb可以匹配的最大前缀fi−1,k∗cntb(0≤b≤9,cntb为使A1....Aj是A1....Akb可以匹配的最大前缀的b的数量)\begin{array}{}f_{i,j}=\sum_{k}^{A_1....A_j是A_1....A_k b可以匹原创 2016-02-03 23:03:00 · 710 阅读 · 0 评论 -
【矩阵】[HNOI2011][HYSBZ/BZOJ2326][CQBZOJ2831]数学作业
题目 分析:另f[n]为Concatenate(1..N) Mod M的值,那么f[n]=(f[n-1]*10^length[n]+n)%MOD。 所以(f[n],n,1)=(f[n-1],n-1,1)*(1,0,0) (1,1,0)原创 2016-01-25 23:38:26 · 616 阅读 · 0 评论 -
【矩阵】[BALKAN OI 2009][Z_trening - 718][CQBZOJ2811]READING
题目 分析: 1.由于矩阵只能限制路径的边数,不能限制长度,我们将一个字母拆成5个点,来限制长度; 2.通过在开头添加到任何字符差异度都为1的虚拟字符,来枚举长度比n小的单词;#include<cstdio>#include<algorithm>#include<cstring>#define MOD 1000000007using namespace std;#define MAX原创 2016-01-25 23:27:59 · 531 阅读 · 0 评论 -
【floyd倍增】[USACO 'NOV07][POJ3613]COW RELAYS
题目 分析:题目大意即在一个无向图中,询问从起点到终点,走n步的最短路。最多100条边,所以最多100个点,对点进行离散化。用floyd求最短路,因为floyd就是向中间插点(插点法)所以只需要做n次floyd,同时使用倍增来加速。#include<cstdio>#include<algorithm>#include<cstring>using namespace std;#define原创 2016-01-25 23:18:18 · 109 阅读 · 0 评论 -
【矩阵相关】[Codeforces - 736D]Permutations
题目大意n个的排列,给你m条规则,规则是一个数对(ai,bi)(a_i,b_i),代表数字bib_i可以放在第aia_i个位置。 对于每一条规则,如果我们删掉它,符合剩下的规则的排列数如果是奇数,就输出YES,否则输出NO。分析首先,我们可以把这些规则表示成邻接矩阵。 那本来的排列数就是邻接矩阵的积和式,但是我们无法快速计算积和式,但是我们只需要知道奇偶性。 考虑一下求积和式原创 2016-12-27 14:41:20 · 1071 阅读 · 0 评论