HDU1588】的更多相关文章

//看了很多的博客 后来队友指点才懂//sum=f(g(0))+f(g(1))+.... //sum=A^(b-1)*|...|.... //要将b-1换,防止出现b=0时有负一,用A^b代替,取下面的即可 //这样问题成了 sum=A^b(A+A^(2k)+A^(3k)+...+A^(k(n-1))); //令B=A^k次,就简单了. /* 主要要求1+A+A^2+A^3+...+A^(n-1)次方 | A A | | A^2 A^2+A | | A^(k-1) A^(k-1)+A^(k-2)…
Gauss Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1706    Accepted Submission(s): 741 Problem Description Without expecting, Angel replied quickly.She says: "I'v heard that you'r…
对每个0<=i<n求f(g(i))的和,其中f(x)为斐波那契数列第x项,g(i)=k*i+b,k,b,n给定,模数给定. 斐波那契数有一种用矩阵乘法求的方法,这个矩阵A自己写,令F[i]为i和i+1的那个矩阵,F[i]=A^b*F[0],然后答案要求F[b]+F[k+b]+F[k*2+b]+……=(A^b+A^(k+b)+A^(2k+b)+……)*F[0]=(E+A^k+……+A^k^(n-1))*A^b*F[0]的[2,1]项.上面括号里就令B=A^k求E+B+B^2+……+B^(n-1)…
题目:Matrix Power Series 传送门:http://poj.org/problem?id=3233 分析: 方法一:引用Matrix67大佬的矩阵十题:这道题两次二分,相当经典.首先我们知道,A^i可以二分求出.然后我们需要对整个题目的数据规模k进行二分.比如,当k=6时,有:$ S(6)= A + A^2 + A^3 + A^4 + A^5 + A^6 =\underline{(A + A^2 + A^3)} + A^3*\underline{(A + A^2 + A^3)}.…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1588 题目大意:g(i)= k * i + b. 给定 k 和 b,求0 <= i < n 的斐波那契数 F(g(i))的和模1,000,000,000. 解题思路: 矩阵快速幂再加上二分矩阵公式. 首先,我们需要认识到的一点是:对于这种求斐波那契数的题,很多都是用矩阵快速幂根据如下公式来计算的. 我们在此把中间那个0\1矩阵设为A.要求 The_Sum_of_F(g(i)),只需求出 A^(g(…
根据题意:最后一步是寻求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)) 括号中的部分就能够二分递归求出来了 而单个矩阵就能够用矩阵高速幂求出来 /**…
[算法]二分+矩阵快速幂 [题意]给定矩阵A和整数k,MOD,求A^0+A^1+A^2+...+A^k. [题解] 定义题目要求的答案为f(n),即: $$f_n=\sum_{i=0}^{n}A^i$$ 当n为偶数时,可以拆成两半,后一半由前一半集体乘A(n/2)得到,即: $$f_n=f_{\frac{n}{2}}(A^{\frac{n}{2}}+1)$$ 当n为奇数时,直接递推: $$f_n=f_{n-1}*A^n$$ 复杂度O(n^3 log k). 快速幂的单位矩阵是主对角线(左上到右下…