矩阵乘法
_beginend
这个作者很懒,什么都没留下…
展开
-
bzoj 1409: Password 矩阵乘法+线性筛
题意Rivest是密码学专家。近日他正在研究一种数列E = {E[1],E[2],……,E[n]}, 且E[1] = E[2] = p(p为一个质数),E[i] = E[i-2]*E[i-1] (若2< i<=n)。 例如{2,2,4,8,32,256,8192,……}就是p = 2的数列。在此基础上他又设计了一种加密算法,该算法可以通过一个密钥q (q < p)将一个正整数n加密成另外一个正整原创 2017-10-08 20:40:03 · 296 阅读 · 0 评论 -
bzoj 2004: [Hnoi2010]Bus 公交线路 状压dp+矩阵乘法
题意小Z所在的城市有N个公交车站,排列在一条长(N-1)km的直线上,从左到右依次编号为1到N,相邻公交车站间的距 离均为1km。 作为公交车线路的规划者,小Z调查了市民的需求,决定按下述规则设计线路: 1.设共K辆公交车,则1到K号站作为始发站,N-K+1到N号台作为终点站。 2.每个车站必须被一辆且仅一辆公交车经过(始发站和终点站也算被经过)。 3.公交车只能从编号较小的站台驶往编号较原创 2017-10-20 15:32:34 · 387 阅读 · 0 评论 -
bzoj 2553: [BeiJing2011]禁忌 AC自动机+矩阵乘法+期望
题意给出n个串,定义一个长度为len的字符串的权值为:所有拆分方案中,最大的完全等于这n个串中一个的部分的数量。求所有长度为len的字符串的权值期望。 n<=5,len<=10^9,每个字符串长度<=15。分析显然可以上AC自动机。 一开始的思路是设f[i,j]表示走了i步走到节点j的期望权值,然后建出状态转移矩阵后发现无法转移。搜了题解才发现可以设f[i,j]表示走了i步走到节点j的概率,然后原创 2017-10-14 11:09:38 · 451 阅读 · 0 评论 -
51nod 1582 n叉树 dp+矩阵乘法
题意有一棵n叉树,深度是无限的,每个结点有n个儿子。从左到右编号为1到n号儿子,第i号儿子离该结点的距离是di。现在要统计一下距离根结点不超过x的结点有多少个。 数字比较大对 109 + 7 取余后输出。 样例解释: 图中黄色的结点是距离根不超3的。 1≤n≤10^5,0≤x≤10^9,1<=di<=100分析注意到di很小,考虑设f[i]表示离根节点距离为i的节点数量。用矩阵快速幂优化原创 2017-10-24 16:26:57 · 348 阅读 · 0 评论 -
bzoj 2510: 弱题 期望dp+循环矩阵乘法
题意有M个球,一开始每个球均有一个初始标号,标号范围为1~N且为整数,标号为i的球有ai个,并保证Σai = M。 每次操作等概率取出一个球(即取出每个球的概率均为1/M),若这个球标号为k(k < N),则将它重新标号为k + 1;若这个球标号为N,则将其重标号为1。(取出球后并不将其丢弃) 现在你需要求出,经过K次这样的操作后,每个标号的球的期望个数。 N ≤ 1000, M ≤ 100,原创 2017-11-11 17:00:19 · 305 阅读 · 0 评论 -
51nod 1583 犯罪计划 dp+矩阵乘法+hash
题意文泽想在埃及做案n次,并且想在最后不用得到惩罚。案件的被分成几种类型。比如说,案件A,当案件A被重复犯两次时,案件A将被认为不是犯罪案件,因此犯案人不用得到惩罚。也就是说,案件A被犯偶数次时,犯案人将不用得到惩罚。又比如案件B,当案件B被犯的次数是5的倍数时,犯案人将不用得到惩罚。 更具体的说,现在知道有c组条件。每组条件包含的信息如下: 1. 案件类型 ti , 2. 底数 mi ,原创 2017-10-26 19:16:41 · 354 阅读 · 0 评论 -
51nod 1197 字符串的数量 V2 dp+矩阵乘法
题意用N个不同的字符(编号1 - N),组成一个字符串,有如下要求: (1) 对于编号为i的字符,如果2 * i > n,则该字符可以作为结尾字符。如果不作为结尾字符而是中间的字符,则该字符后面可以接任意字符。 (2) 对于编号为i的字符,如果2 * i <= n,则该字符不可以作为结尾字符。作为中间字符,那么后面接的字符编号一定要 >= 2 * i。 问有多少长度为M且符合条件的字符串,由于原创 2017-10-26 21:13:03 · 305 阅读 · 0 评论 -
CodePlus 2017 12 月赛 可做题2 矩阵乘法+exgcd
题意 分析注意到a1a_1对aka_k贡献的系数为斐波那契数列第k-2项,a2a_2对aka_k贡献的系数为第k-1项,那么可以把这两项求出来,那么a2a_2就一定是某个不定方程ax+by=c的解x。 设d为gcd(a,b),先解出该方程一个解x0,y0,有个定理就是该方程的全部解是x0+(b/d)n,y0-(a/d)n,那么就很容易求出区间解的数量了。代码#include<iostream>原创 2017-12-25 21:41:25 · 537 阅读 · 0 评论 -
bzoj 4161: Shlw loves matrixI 常系数线性齐次递推
题意给定数列 {hn}前k项,其后每一项满足 hn = a1*h(n-1) + a2*h(n-2) + … + ak*h(n-k) 其中 a1,a2…ak 为给定数列。请计算 h(n),并将结果对 1000000007 取模输出。 对于 100% 数据,满足 n <= 10^9;k <= 2000; abs(hi)<=10^9; abs(ai)<=10^9分析搞了一下午中午搞了出来。 大概就原创 2017-12-29 17:00:02 · 2017 阅读 · 0 评论 -
bzoj 4162: shlw loves matrix II 拉格朗日插值法+矩阵乘法
题意给定矩阵 M,请计算 M^n,并将其中每一个元素对 1000000007 取模输出。 对于 100% 数据,满足 n <= 2^10000;k <= 50; 0 <= Mij < 10^9 +7分析我们可以带入k+1个不同的λ\lambda算出所有的|A−λI||A-\lambda I|,然后用拉格朗日插值法把M的特征多项式f(x)f(x)插出来。 因为根据Cayley-Hamilton定理原创 2017-12-29 20:06:04 · 1238 阅读 · 0 评论 -
Codeforces 446D DZY Loves Games 矩阵乘法+高斯消元
题意有一个n个点m条边的无向图,其中一些点是特殊点,保证1不是特殊点,n一定是特殊点。现在从1开始,每次会等概率选择一条与当前点相连的边走,问走到的第k-1个特殊点恰好是n的概率。保证特殊点的数量不超过100。 n≤500,m≤105,k≤109n≤500,m≤105,k≤109n\le500,m\le10^5,k\le10^9分析设f[i,j]f[i,j]f[i,j]表示走到第...原创 2018-04-24 20:52:21 · 332 阅读 · 0 评论 -
LibreOJ #6074.「2017 山东一轮集训 Day6」子序列 dp+矩阵乘法
题意给一个长度为n的字符串,有q次询问,每次询问[l,r]构成的字符串有多少个本质不同的子序列。 n,q≤105n,q≤105n,q\le10^5,字符集大小为9.分析先考虑如何暴力求区间内本质不同的子序列数。 我们可以每个位置向他往后第一次出现的那些字符连边,然后建一个虚点往区间从左往右第一次出现的字符连边,那么显然从虚点开始走的路径数就是答案。 设fi,jfi,jf_{i...原创 2018-06-23 07:45:44 · 905 阅读 · 0 评论 -
51nod 1836 战忽局的手段 矩阵乘法
题意众所周知,有一个神秘的组织——战忽局,在暗中保护着我们。在局中任职的官员都有着极强的忽悠技巧,不只能用预言,还能用往事忽悠人。如今某外星间谍已经获得了战忽局曾经参与的n次事件的资料,局座发现了这件事,于是决定再次用忽悠来保证战忽局的安全。局座将发表m次演讲,每一天他都会从n事件中等概率地挑选一件混淆众人,由于局座每天很忙,不能把之前将的事件都记录下来,因此他可能会重复选择某一件事。现在局座想知道原创 2017-08-12 16:29:29 · 297 阅读 · 0 评论 -
BNUOJ 52322 Fibonacci of Fibonacci 矩阵乘法+高精度+预处理
题意f(n)表示斐波那契数列的第n项,f(0)=0,f(1)=1,现在给出一个n,求f(f(n)) mod 20160519 n<=10^100(原题是10^9,但我的程序可以跑过10^100)分析一开始想的是费马小定理,后来发现是不行的,于是就去问了一发,发现了一个很脑洞的想法:找寻环节。也就是找到在mod MOD的情况下最小的k使得f(k) mod MOD=0,f(k+1) mod MOD=1原创 2016-10-26 21:15:38 · 360 阅读 · 0 评论 -
bzoj 1009: [HNOI2008]GT考试 KMP+矩阵乘法
题意求有多少个长度为n且仅包含0到9的字符串不包含一个长度为m的子序列。 n<=10^9,m<=20分析先得到s的next数组,然后根据dp方程f[n][u]+=f[n-1][i],表示在kmp上走了n步走到节点u的方案数,我们可以构造一个状态转移矩阵,然后矩阵快速幂就好了。代码#include<iostream>#include<cstdio>#include<cstdlib>#inclu原创 2016-11-12 11:09:37 · 351 阅读 · 0 评论 -
bzoj 1875: [SDOI2009]HH去散步 动态规划+矩阵乘法
题意给出一个无向图,问从点s出发到点e经过t条边有多少种不同的路径,不能走回头路。 n<=20,m<=60,t<=230n<=20,m<=60,t<=2^{30}分析一开始看:我擦这不就是个傻逼矩阵乘法题吗。 再一看:我擦居然不能回头,不会了2333但是我们可以注意到边数并不多,于是有个很棒棒的idea就是对边进行dp然后矩阵乘法优化即可。代码#include<iostream>#includ原创 2017-03-23 15:48:26 · 477 阅读 · 0 评论 -
bzoj 4818: [Sdoi2017]序列计数 动态规划+矩阵乘法
题意Alice想要得到一个长度为nn的序列,序列中的数都是不超过mm的正整数,而且这nn个数的和是pp的倍数。 Alice还希望,这nn个数中,至少有一个数是质数。 Alice想知道,有多少个序列满足她的要求。 对100%100\%的数据,1≤n≤109,1≤m≤2×107,1≤p≤1001\leq n \leq 10^9,1\leq m \leq 2×10^7,1\leq p\leq 100原创 2017-04-11 16:20:11 · 1721 阅读 · 0 评论 -
bzoj 3329: Xorequ 数位dp+矩阵乘法
题意 T<=1000,n<=10^18分析式子画一下就变成了x^2x=3x=x+2x 容易发现其实就是要求[1,n]内有多少个数满足其二进制任意相邻的两位不同时为1. 第一问的话随便数位dp一下就好了。 第二问的话,把dp式列出来,会发现答案就是斐波那契数列的第n+2项,直接矩阵乘法快速幂即可。代码#include<iostream>#include<cstdio>#include<cs原创 2017-05-31 16:56:56 · 429 阅读 · 0 评论 -
bzoj 4128: Matrix BSGS+矩阵乘法
题意给定矩阵A,B和模数p,求最小的x满足 A^x = B (mod p) n <= 70,p <=19997,p为质数,0<= A_{ij},B_{ij}< p 保证A有逆。分析首先第一反应肯定是矩阵求逆+BSGS,然后用map来判断矩阵是否相等。 这样的复杂度大概是O(sqrt(p)*n^3),还要矩阵求逆,比较麻烦。在网上看到了几个比较好的优化。 BSGS一般都是设Axw+y≡B(m原创 2017-06-22 20:39:18 · 669 阅读 · 0 评论 -
bzoj 4547: Hdu5171 小奇的集合 矩阵乘法
题意有一个大小为n的可重集S,小奇每次操作可以加入一个数a+b(a,b均属于S),求k次操作后它可获得的S的和的最大值。(数据保证这个值为非负数) n<=10^5,k<=10^9,|ai|<=10^5。答案对10000007取模。分析显然是每次找集合中最大的两个元素相加。先找到最大的两项k1,k2,若一项为负则往后推一项。可以发现集合中加入的第i个数中k1的系数为斐波那契数列第i项,k2系数为原创 2017-07-14 11:59:37 · 455 阅读 · 0 评论 -
bzoj 3168: [Heoi2013]钙铁锌硒维生素 矩阵求逆+构造最小字典序完备匹配
题意给两组向量,每组有n个n维向量。,求一组字典序最小的匹配方案使得把第一组向量的任意一个替换成其对应的向量后满足这n个向量仍然线性无关。 n<=300分析这是14年的集训队论文题。显然第一组向量是n维向量空间的一组基,那么第二组向量显然都可以由第一组向量表示出来。 这里有一个结论,就是若第一组向量的某个向量j可以由第二组向量的某个向量i替换,当且仅当在用第一组向量表示向量i的式子里,j的系数不原创 2017-06-14 20:16:14 · 665 阅读 · 0 评论 -
bzoj 4386: [POI2015]Wycieczki 倍增+矩阵乘法
题意给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种。 将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点。 1<=n<=40,1<=m<=1000,1<=k<=10^18)分析首先要二分答案,然后考虑统计长度不超过mid的路径数。 设fi,jfi,jf_{i,j...原创 2018-07-12 11:54:48 · 349 阅读 · 0 评论