![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
矩阵
文章平均质量分 68
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
HDU 2604 Queuing(矩阵快速幂)
题目地址:HDU 2604这题只要推出公式来,构造矩阵就很容易了,问题是推不出公式来。。TAT。。从递推的思路考虑,用f(n)表示n个人满足条件的结果,如果最后一个是m则前n-1人可以任意排列,有f(n-1)种;如果是f,则考虑后两位mf和ff,没有一定满足或者一定不满足的状态,所以继续考虑一位,考虑后三位mmf, fmf, mff, fff,其中fmf和fff不符合条件,如果是mmf,则原创 2014-09-18 15:46:51 · 892 阅读 · 0 评论 -
POJ 3070 Fibonacci(矩阵快速幂)
题目地址:POJ 3070用这个题学会了用矩阵快速幂来快速求斐波那契数。根据上个公式可知,第1行第2列和第2行第1列的数都是第n个斐波那契数。所以构造矩阵,求快速幂即可。代码如下:#include #include #include #include #include #include #include #include #include #include原创 2014-09-17 14:42:50 · 1082 阅读 · 0 评论 -
ZOJ 3690 Choosing number(矩阵快速幂)
题目地址:ZOJ 3690假设F(n)表示前n个人第n个人选择的数大于k的个数,G(n)表示的是前n个人第n个人选择的数小于等于k的个数 那么F(n) = F(n-1)*(m-k)+G(n-1)*(m-k) , G(n) = F(n-1)*k+G(n-1)*(k-1) , 那么最后的结果就是F(n)+G(n); 那么我们可以构造出矩阵 | m-k m-k| | F(原创 2014-09-27 21:49:03 · 990 阅读 · 0 评论 -
HDU 1575 Tr A(矩阵快速幂)
题目地址:HDU 1575矩阵快速幂裸题。初学矩阵快速幂。以前学过快速幂,今天一看矩阵快速幂,原来其原理是一样的,这就好办多了。都是利用二分的思想不断的乘。只不过把数字变成了矩阵而已。代码如下:#include #include #include #include #include #include #include #include #include #incl原创 2014-09-17 11:18:41 · 1185 阅读 · 0 评论 -
HDU 2254 奥运(矩阵)
题目地址:HDU 2254必须得吐槽一下。。这题的数据是又弱又坑。。样例不过都能AC。。还有。。居然还有重边。。WA了一晚上。。吐槽完毕,言归正传。。根据离散数学里面的可达矩阵的性质,我们知道一个有向图的邻接矩阵的前n次幂的和即为可达矩阵,那么要求[t1-t2]之内的路径的条数,因为题目说了t1 = 0的时候为0。那么假设邻接矩阵为A,那么要求的就是A^(t1-1)+A^(t1)+..原创 2014-09-25 20:44:52 · 1098 阅读 · 0 评论 -
HDU 1757 A Simple Math Problem(矩阵快速幂)
题目地址:HDU 1757终于会构造矩阵了。其实也不难,只怪自己笨。。= =! f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10)构造的矩阵是:(我代码中构造的矩阵跟这个正好是上下颠倒过来了)|0 1 0 ......... 0| |f0| |f1 ||0 0 1 0 ...... 0|原创 2014-09-17 23:16:17 · 896 阅读 · 0 评论 -
bnu新生赛D 柯南的精灵(矩阵快速幂)
题目地址:http://www.bnuoj.com/v3/contest_show.php?cid=5727#problem/D学了矩阵快速幂之后,终于用到一次了。。没学之前天天遇到。。学了之后终于遇到一次了。。。特来纪念一下分别设方程f(x)为发育期精灵,g(x)为更年期精灵,h(x)为天数。然后f(x-1) f(x)g(x-1)原创 2014-12-27 18:28:41 · 961 阅读 · 0 评论 -
Codeforces Round #291 (Div. 2) E - Darth Vader and Tree (DP+矩阵快速幂)
这题想了好长时间,果断没思路。。于是搜了一下题解。一看题解上的”快速幂”这俩字,不对。。这仨字。。犹如醍醐灌顶啊。。。因为x的范围是10^9,所以当时想的时候果断把dp递推这一方法抛弃了。我怎么就没想到矩阵快速幂呢。。。。。。。还是太弱了。。sad。。100*100*100*log(10^9)的复杂度刚刚好。 于是,想到了矩阵快速幂后,一切就变得简单了。就可以把距离<=x的所有距离的点数都通过原创 2015-02-16 23:11:59 · 1321 阅读 · 0 评论 -
FZU 2040 Tiling (矩阵快速幂)
题目地址:FZU 2040 重点在于构造矩阵,先状压,然后根据每一行是否与下一行分割了来构造一个2^(m-1)*2^(m-1)的矩阵,然后套上矩阵快速幂就可以了。937ms险过。。 代码如下:#include <iostream>#include <string.h>#include <math.h>#include <queue>#include <algorithm>#includ原创 2015-03-31 17:32:01 · 938 阅读 · 0 评论 -
HDU 4686 Arc of Dream(矩阵快速幂)
题目地址:HDU 4686我去。。因为忘记把函数里的k定义成64位的,导致TLE了一晚上。。。晕。。这题没什么技巧,就是根据公式构造就行。代码如下:#include #include #include #include #include #include #include #include #include #include #include using n原创 2014-09-24 23:12:43 · 860 阅读 · 0 评论 -
HDU 3117 Fibonacci Numbers(矩阵快速幂+公式)
题目地址:HDU 3117对于后四位可以用矩阵快速幂快速求出来,但前四位就没办法了。要知道斐波那契数列是有通项公式的,所以只能通过通项公式来求前四位,但公式不能求后四位,因为公式使用浮点数求的,精度显然不够,求前四位要用到对数。通项公式为:f(n)=1/sqrt(5)(((1+sqrt(5))/2)^n+((1-sqrt(5))/2)^n)假设F[n]可以表示成 t * 10^原创 2014-09-24 19:03:34 · 1259 阅读 · 0 评论 -
HDU 4565 So Easy!(矩阵快速幂)
题目地址:HDU 4565这题曾经在上海邀请赛前做过,但是当时一点思路都没有,现在拿起这道题来简直是小菜一碟啊。而且这题跟hdu2256也很像。详情请看:HDU 2256构造矩阵:a,b1,a代码如下:#include #include #include #include #include #include #include #include #includ原创 2014-09-24 17:21:15 · 980 阅读 · 0 评论 -
HDU 1588 Gauss Fibonacci(矩阵快速幂)
题目地址:HDU 1588用于构造斐波那契的矩阵为1,11,0设这个矩阵为A。sum=f(b)+f(k+b)+f(2*k+b)+f(3*k+b)+........+f((n-1)*k+b)sum=A^b+A^(k+b)+A^(2*k+b)+A^(3*k+b)+........+A^((n-1)*k+b)sum=A^b+A^b*(A^k+A^2*k+A^3*k+.....原创 2014-09-18 17:25:37 · 1194 阅读 · 0 评论 -
HDU 2842 Chinese Rings(矩阵快速幂+递推)
题目地址:HDU 2842这个游戏是一个九连环的游戏。假设当前要卸下前n个环。由于要满足前n-2个都卸下,所以要先把前n-2个卸下,需要f(n-2)次。然后把第n个卸下需要1次,然后这时候要卸下第n-1个,然后此时前n-2个都已经被卸下了。这时候把前n-2个都卸下与都装上所需的次数是一样的,因为卸下与装上的规则是一样的。所以又需要f(n-2)次,这时候前n-1个都在上面,卸下前n-1个需要原创 2014-09-18 21:42:58 · 1015 阅读 · 0 评论 -
HDU 2256 Problem of Precision(矩阵快速幂)
题目地址:HDU 2256思路:(sqrt(2)+sqrt(3))^2*n=(5+2*sqrt(6))^n;这时要注意到(5+2*sqrt(6))^n总可以表示成an+bn*sqrt(6);an+bn*(sqrt(6))=(5+2*sqrt(6))*(a(n-1)+b(n-1)*sqrt(6)) =(5*a(n-1)+12*b(n-原创 2014-09-18 19:51:10 · 1383 阅读 · 0 评论 -
codeforces #185 A Plant(矩阵快速幂+递推)
题目地址:http://codeforces.com/problemset/problem/185/A通过这个题终于找回了点找递推公式的信心。。TAT。。首先,第n个图形的上方,左下方,右下方的三个大三角形是跟第n-1个是一模一样的,所以是3*f(n-1)。然后只剩下中间一个倒着的大三角形了,这时可以注意到,其实也跟第n-1个一模一样,只不过上下颠倒过来了,那这里的正着的三角形数就相当原创 2014-09-18 20:53:28 · 1101 阅读 · 0 评论 -
POJ 3233 Matrix Power Series(矩阵快速幂+二分)
题目地址:POJ 3233题目大意:给定矩阵A,求A + A^2 + A^3 + … + A^k的结果(两个矩阵相加就是对应位置分别相加)。输出的数据mod m。k 这道题两次二分,相当经典。首先我们知道,A^i可以二分求出。然后我们需要对整个题目的数据规模k进行二分。比如,当k=6时,有: A + A^2 + A^3 + A^4 + A^5 + A^6 =(A + A^2原创 2014-09-17 17:06:41 · 2600 阅读 · 0 评论 -
FZU 1683 纪念SlingShot(矩阵快速幂)
题目地址:FZU 1683这题一开始用的二分矩阵,于是就一直TLE。后来找题解才发现,可以不用二分矩阵,因为这个题最终求的是一个值,所以可以把那个值加入到构造的矩阵中:这样就不用二分矩阵了。而是可以直接求。但是这样还是会超时,那怎么办呢。由于本题的模数是固定的,所以矩阵的幂也是固定的。那么就可以对一些2^x幂预处理出来。代码如下:#include #include #i原创 2014-09-23 19:08:35 · 1248 阅读 · 0 评论 -
HDU 3306 Another kind of Fibonacci(矩阵快速幂)
题目地址:HDU 3306原创 2014-09-23 21:36:32 · 775 阅读 · 0 评论 -
HDU 2276 Kiki & Little Kiki 2(矩阵快速幂)
题目地址:HDU 2276这题的矩阵构造方式不太好想。看的题解才会的。原来是用fn=(fn-1+fn)%2的方法。于是就构造出了一个矩阵:1,0,0,11,1,0,00,1,1,00,0,1,1然后矩阵快速幂来求。但是取余运算是很费时间的,每次都%2会超时,于是这时就可以转化为位运算。代码如下:#include #include #include #i原创 2014-09-24 15:57:02 · 962 阅读 · 0 评论 -
Codeforces Round #307 (Div. 2) D. GukiZ and Binary Operations (矩阵快速幂)
题目地址:http://codeforces.com/contest/551/problem/D 分析下公式可以知道,相当于每一位上放0或者1使得最后成为0或者1,如果最后是0的话,那么所有相邻位一定不能全是1,因为如果有一对相邻位全为1,那么这两个的AND值为1,又因为OR值是只要有1,结果就为1,所以这位结果肯定为1,所以就推出了一个dp转移方程,dp[i][j]表示第i位上的数为j时的总个数原创 2015-08-21 09:58:15 · 991 阅读 · 4 评论