
杂七杂八—矩阵快速幂
文章平均质量分 82
Ezereal
这个作者很懒,什么都没留下…
展开
-
HDU 2604 Queuing (矩阵快速幂)
题意: n个人排队,f表示女,m表示男,包含子串‘fmf’和‘fff’的序列为O队列,否则为E队列,有多少个序列为E队列。分析: 矩阵快速幂入门题。 下面引用巨巨解释:用f(n)表示n个人满足条件的结果,那么如果最后一个人是m的话,那么前n-1个满足条件即可,就是f(n-1); 如果最后一个是f那么这个还无法推出结果,那么往前再考虑一位:那么后三位可能是:mmf,原创 2016-04-30 14:33:09 · 302 阅读 · 0 评论 -
Codeforces 691E Xor-sequences【矩阵快速幂,好题】
题意:给定序列,从序列中选择k(1≤k≤1e18)个数(可以重复选择),使得得到的排列满足xi与xi+1异或的二进制表示中1的个数是3的倍数。问长度为k的满足条件的 序列有多少种?分析:首先每个元素自己构成一个长度为1的满足条件的序列。 其次我们可以预处理出满足条件的vi,vj,就可以得到一个横纵为n的01矩阵。这还是很显然的。此时我们得到了以vi开头,vj结尾的长转载 2016-10-10 22:17:33 · 589 阅读 · 0 评论 -
2016 ACM/ICPC Asia Regional Shenyang Online HDU 5895 Mathematician QSC(矩阵快速幂+高次幂取模)★ ★
题意:已知f(n)=2*f(n-1)+f(n-2), g(n)=∑f(i)²(0思路:OEIS查到了g(n)=f(n)*f(n+1)/2, f(n)可以用矩阵快速幂求得, 有一个定理可以用于高次幂取模 x^n %k=x^(n%phi(k)+phi(k)) %k, 此处phi(x)为欧拉函数,但是在对幂次取模时存在一个除2,又因为(a/b)%k=(a%bk)/b,所以这个问题得以解决(这个方转载 2016-09-19 19:55:30 · 427 阅读 · 0 评论 -
Codeforces Round #341 (Div. 2) E. Wet Shark and Blocks(矩阵优化DP)★
转载自:http://blog.youkuaiyun.com/weizhuwyzc000/article/details/50618417题意:给n个数作为一个块,有b个块,从其中若干个中选择数,每个块只能选一个数,最后组成一个数模x等于k的方法数。思路:很容易想到这样一个DP方程 : 用dp[i][j]表示现在i位,余数是j。那么很容易知道,边界是d[0][0] = 1;那么dp[i][j]转载 2016-08-26 21:29:09 · 1037 阅读 · 0 评论 -
HDU 4767 Bell (贝尔数 中国剩余定理 构造矩阵) ★ ★
斯特灵数[编辑]维基百科,自由的百科全书在组合数学,Stirling数可指两类数,都是由18世纪数学家James Stirling提出的。第一类[编辑]s(4,2)=11第一类Stirling数是有正负的,其绝对值是个元素的项目分作个环排列的方法数目。常用的表示方法有。换个较生活化的说法,就是有个人分成组,每组内再按特转载 2016-09-01 11:37:18 · 901 阅读 · 0 评论 -
HDU 5863 cjj's string game(矩阵快速幂) ★
题目大概说用k个不同的字母,有多少种方法构造出两个长度n最长公共子串长度为m的字符串。n的规模达到了10亿,而且又是方案数,自然就想到构造矩阵用快速幂解决。考虑用DP解决可以这么表示状态:dp[i][j]表示两个字符串前i个字符都构造好了 并且 它们后面的j个字符相同的方案数状态的转移就是,末尾j个相同的可以转移到0个相同的也能转移到j+1个相同的(前提是j而对于这个状原创 2016-08-21 09:52:12 · 603 阅读 · 0 评论 -
poj 3744 Scout YYF I (概率DP&矩阵快速幂)★
题意: 你在一条布满地雷的道路上,开始在坐标1。每次有概率P向前走一步,有概率1-P向前走两步。道中路某几个点上会有地雷,问你安全通过的概率。地雷数N思路:假设dp[i]表示安全走到i点的概率,那么dp[i]=P*dp[i-1]+(1-P)*dp[i-2]。很简单的一个转移,但是坐标范围太大了。直接递推爆内存,而且肯定也会超时。我们换一个思路,假设x[i]表示第i转载 2016-07-31 15:26:13 · 653 阅读 · 0 评论 -
hdu 5667 Sequence(矩阵快速幂+费马小定理+快速幂)
Problem Description Holion August will eat every thing he has found. Now there are many foods,but he does not want to eat all of them at once,so he find a sequence.fn=⎧⎩⎨⎪⎪1,ab,a原创 2016-04-30 14:13:19 · 463 阅读 · 0 评论 -
hdu 2157 How many ways??
春天到了, HDU校园里开满了花, 姹紫嫣红, 非常美丽. 葱头是个爱花的人, 看着校花校草竞相开放, 漫步校园, 心情也变得舒畅. 为了多看看这迷人的校园, 葱头决定, 每次上课都走不同的路线去教室, 但是由于时间问题, 每次只能经过k个地方, 比方说, 这次葱头决定经过2个地方, 那他可以先去问鼎广场看看喷泉, 再去教室, 也可以先到体育场跑几圈, 再到教室. 他非常想知道, 从A 点恰好经过原创 2016-04-30 14:50:32 · 330 阅读 · 0 评论 -
Codeforces Round #373 (Div. 2) E. Sasha and Array 线段树维护矩阵
题意给你n个数,两个操作,1是区间增加x,2是查询区间fib(a[i])的和题解:回忆一下你怎么做矩阵快速幂fib的,就知道这个更新,其实就是多乘上了一个A^x矩阵。A = 【0,1;0,0;】这个玩意儿。然后就可以区间更新呢。CF官方题解下面有个评论说的很清楚,大家可以看一下。#includeusing namespace std;转载 2016-10-18 08:55:47 · 426 阅读 · 0 评论