欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - HDU3306 题意概括 A0=1,A1=1,AN=X*AN-1+Y*AN-2(N>=2).求SN,SN=A02+A12+…+An2. 题解 这题是用矩阵做的,一看(sou)就知道. 设si为前i项的答案. 如果要求第i项的ai那么是很简单的. 构建矩阵:   ai-1     ai ai-2 0  y ai-1 1  x 但是好像没用. 没错,的确没用. 我们从二次项考虑: si =si-1+ai2  …
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ3286 题意概括 n,m,a,b,c,d,e,f<=10^1000000 题解 神奇的卡常题目. 在此感谢"zhouzixuan"——bzoj 3286: Fibonacci矩阵 学习他,才15秒卡过此题. 这题的做法应该很明显的,学过矩阵快速幂的大概几眼就看出来了. 对于每一行的转移,是相同的,所以矩阵快速幂可以搞定行与行之间的转移. 然后对于某一行,其实大部分的转移是和abc有…
题目的大意就是求等差数列对应的Fibonacci数值的和,容易知道Fibonacci对应的矩阵为[1,1,1,0],因为题目中f[0]=0,f[1]=1,所以推出最后结果f[n]=(A^n-1).a,所以 f(g(i))= f(k*i+b)= (A^(k*i+b-1)).a,i从 0取到 n-1,取出公因式 A^(b-1)(因为矩阵满足分配率),然后所求结果可化为 A^(b-1) * (A^0 + A^k + A^2k +....+ A^(n-1)k),化到这里后难点就是求和了,一开始我尝试暴力…
转载请注明出处:http://www.cnblogs.com/KirisameMarisa/p/4187670.html 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3306 Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1720   …
Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1272    Accepted Submission(s): 490 Problem Description As we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(…
Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequenc…
Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequenc…
Gauss Fibonacci Time Limit: 3000/1000 MS (Java/Others)     Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27    Accepted Submission(s): 5 Problem Description Without expecting, Angel replied quickly.She says: "I'v heard that you'r a ve…
orz啊又被屠了 人生如此艰难 题意: 给定一个k维的n^k的超立方体 超立方体的元素Ai1,i2,...,ik 的值为f(i1+i2+...+ik-k+1) f为斐波那契数列 求该超立方体的所有元素和 1<=n,k<=10^9 题解: 其实看到数据范围 就大概猜到是矩阵乘法了 但是我考试的时候想了半天还是不知道矩阵乘法怎么搞 - - 其实矩阵乘法比我想象中的厉害多了 这里有个性质 做完一维后 可以把这维压缩成一个点 用这维的和代替 并且压缩后下一维还是满足斐波那契的性质所以可以用同一个矩阵继…
职务地址:POJ 3070 用这个题学会了用矩阵高速幂来高速求斐波那契数. 依据上个公式可知,第1行第2列和第2行第1列的数都是第n个斐波那契数.所以构造矩阵.求高速幂就可以. 代码例如以下: #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #include <math.h> #include…
题意:给你一个n,输出Fibonacci (n)%10000的结果 思路:裸矩阵快速幂乘,直接套模板 代码: #include <cstdio> #include <cstring> #include <iostream> using namespace std; typedef long long ll; ,M=,P=; ; struct Matrix { ll m[N][N]; }; Matrix A={,, ,}; Matrix I={,, ,}; Matrix…
Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence are: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, … An alternative formula for the Fibonacci sequence is…
Another kind of Fibonacci [题目链接]Another kind of Fibonacci [题目类型]矩阵+ll超时必须用int&输入必须取模&M必须是int类型 &题解: 算出矩阵的每一行一定要和初始化的那个矩阵不一样,如果有一项是一样的,那么就推不出最后的答案,所以矩阵如下: 代码还有问题,T了,不知道为什么,明天在看吧 [时间复杂度]\(O(logn)\) &超时代码: #include <cstdio> #include <…
H - K-Nice Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3212 Description This is a super simple problem. The description is simple, the solution is simple. If you believe so, just read it on. O…
题目链接 题意:g(x) = k * x + b.f(x) 为Fibonacci数列.求f(g(x)),从x = 1到n的数字之和sum.并对m取模. 思路:  设A = |(1, 1),(1, 0)|  sum = f(b) + f(k + b) + f(2k + b)...+f((n-1)k + b) (f(x) 为Fibonacci数列)  sum = A^b + A^(k + b) + A^(2k + b)...+ A^((n-1)k + b)  sum = A^b(1 + A^k +…
Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7715   Accepted: 5474 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequence…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3306 题目意思:一个斐波那契数列的变式,本来是A[n]=A[n-1]+A[n-2],现在变成A[n]=N*A[n-1]+Y*A[n-2].一个很简单的矩阵快速幂. S(N) = A(0)2 +A(1)2+……+A(n)2对系数矩阵稍微变化一下就可以了.唯一需要注意的是N和Y可能很大,所以需要先mod一下. 思路:首先先求A[n]^2,因为A[n]=N*A[n-1]+Y*A[n-2],所以A[n]^2…
                             Modular Fibonacci The Fibonacci numbers (0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...) are defined by the recurrence:F0 = 0F1 = 1Fi = Fi−1 + Fi−2 for i > 1Write a program which calculates Mn = Fn mod 2m for given pair of n and…
就是Fibonacci的矩阵算法.只是添加一点就是由于数字非常大,所以须要取10000模,计算矩阵的时候取模就能够了. 本题数据不强,只是数值本来就限制整数,故此能够0ms秒了. 以下程序十分清晰了,由于分开了几个小函数了.适合刚開始学习的人參考下. #include <stdio.h> const int MOD = 10000; void mulOneMatrix(int F[2][2]) { int a = F[0][0]; int b = F[1][0]; F[0][0] = (a+b…
Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18607   Accepted: 12920 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. For example, the first ten terms of the Fibonacci sequen…
题意 :  长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这里就不考虑单词是否有实际意义. 比如一共有2个词根 aa 和 ab ,则可能存在104个长度不超过3的单词,分别为(2个) aa,ab, (26个)aaa,aab,aac...aaz, (26个)aba,abb,abc...abz, (25个)baa,caa,daa...zaa, (25个)bab,cab,dab...zab. 分析: 我们可以用Tire图跑矩阵快速幂的方法,去求长度为n不包含给定单词的词…
题意 :  长度不超过L,只由小写字母组成的,至少包含一个词根的单词,一共可能有多少个呢?这里就不考虑单词是否有实际意义. 比如一共有2个词根 aa 和 ab ,则可能存在104个长度不超过3的单词,分别为(2个) aa,ab, (26个)aaa,aab,aac...aaz, (26个)aba,abb,abc...abz, (25个)baa,caa,daa...zaa, (25个)bab,cab,dab...zab. 分析 : 这题和 POJ 2778 非常相似,如果没有做过 POJ 2778…
题意:      给了n个灯泡的状态,他们绕成一个环,0是灭,1是亮,每一秒灯泡的状态都会改变,规则是如果当前这个灯泡的左边的灯泡当前是状态1,那么下一秒当前的这个灯泡状态就改变0变1,1变0,最后问你m秒后的状态. 思路:      我们先找当前状态和下一个状态的关系(状态也就是秒),我们可以抽象成这么一种关系,如果第i个灯泡的状态是ai,那么下一秒的第i个灯泡的状态是上一秒的(ai + ai-1)%2,这样关系就出来了,我们构造矩阵,现在就以n=5为例: 上一秒              …
学了线代之后 终于明白了矩阵的乘法.. 于是 第一道矩阵快速幂.. 实在是太水了... 这差不多是个模板了 #include <cstdlib> #include <cstring> #include <cstdio> #include <iostream> using namespace std; int N; struct matrix { int a[3][3]; }origin,res; matrix multiply(matrix x,matrix…
根据题意:最后一步是寻求f(b) + f(k + b) + f(2 * k + b) + -+ f((n-1) * k + b) 清除f(b) = A^b 间A = 1 1 1 0 所以sum(n - 1) = A^b(E + A^ k + A ^(2 * k) + - + A ^((n - 1) * k) 设D = A^k sum(n-1) = A^b(E + D + D ^ 2 + - + D ^(n - 1)) 括号中的部分就能够二分递归求出来了 而单个矩阵就能够用矩阵高速幂求出来 /**…
Another kind of Fibonacci Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1919    Accepted Submission(s): 738 Problem Description As we all known , the Fibonacci series : F(0) = 1, F(1) = 1, F(N…
http://poj.org/problem?id=3070 #include <iostream> #include <string.h> #include <stdlib.h> #include <cstdio> #include <algorithm> #define mod 10000 using namespace std; struct m { ][]; } init,res; int n; m Mult(m x,m y) { m t…
Kiki & Little Kiki 2 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1659    Accepted Submission(s): 837 Problem Description There are n lights in a circle numbered from 1 to n. The left of ligh…
正解:矩阵快速幂 解题报告: 我永远喜欢loj! 一看到这个就应该能想到矩阵快速幂? 然后就考虑转移式,发现好像直接想不好想,,,主要的问题在于这个*$i$,就很不好搞$QAQ$ 其实不难想到,$\sum_{i=1}^{n}a_i\cdot(n-i)$这样一个式子是可以在矩阵快速幂中推出来的(类似这个形式的都可,,,就随着编号递增系数递减这样子$QwQ$ 具体来说就是表示成$\sum_{i=1}^{n}\sum_{j=1}^{i}a_j$,就欧克辣(具体实现后面港,,, 但是问题在于,它是$\s…
题意: 求出斐波那契数列的第n项的后四位数字 思路:f[n]=f[n-1]+f[n-2]递推可得二阶行列式,求第n项则是这个矩阵的n次幂,所以有矩阵快速幂模板,二阶行列式相乘, sum[ i ] [ j ]+=v[i][k]*u[k][j] ___k==1->j: 模板: #include<stdio.h> #include<map> using namespace std; //矩阵快速幂 struct node { int m[10][10]; }a,b; node ju…