
矩阵
ramay7
Life is not short,but float.
展开
-
CF 450 B Jzzhu and Sequences(矩阵快速幂)
题目链接: CF 450 B Jzzhu and Sequences 分析: Fibonacci数列裸题。只需要注意负数即可。#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const long long mod=(long long)(1e9)+7;l原创 2016-03-19 10:41:04 · 367 阅读 · 0 评论 -
BC #80 C Sequence(指数矩阵快速幂)
题目链接: BC #80 C Sequence 题意: 给出a,b,c,n,p.定义f(1)=1,f(2)=ab,其余f(n)=abf(n−1)cf(n−2).求f(n)a,b,c,n,p.定义f(1)=1,f(2)=a^b,其余f(n)=a^bf(n-1)^cf(n-2). 求f(n). 分析: 对f(n)的三项因子的指数设为x,y,z构造矩阵。| 1 B 0 | | x(n-1)原创 2016-04-17 00:14:21 · 537 阅读 · 0 评论 -
POJ 3734 Blocks(dp、矩阵快速幂)
题目链接: POJ 3734 Blocks 题意: 有n个格子,每个格子可以涂red,blue,green,yellowred,blue,green,yellow四种颜色之一,但是需要保证所有的red和green格子数均为偶数,问一共有多少种涂色方案? 如:n=2时:RR,GG,BY,YB,BB,YY,共6种。数据范围1<=n<=(1e9)n=2时:RR,GG,BY,YB,BB,YY,共6种原创 2016-04-04 15:47:47 · 639 阅读 · 0 评论 -
HDU 4549 M斐波那契数列(构造矩阵)
题目链接: HDU 4595 M斐波那契数列/* * 分析: * 将每个数用a[0]和a[1]表示,发现a[0]和a[1]的幂的变化符合Fibonacci数列。 * 所以可以用矩阵快速幂求出相应的幂数,然后再用整数快速幂求出a[0]和a[1]的幂 * 再把结果相乘%(1e9+7)即是结果。 * 注意: * 对于(A^B)%C,如果C是素数,且A和C互质(只有一个公因子1) * 则等价原创 2016-03-19 10:52:07 · 444 阅读 · 0 评论 -
三月校赛1006 wuli通通和Fibonacci (a[n]=f[n]*(n^m)的前k项和)
题目链接: 校赛 1006 wuli通通和Fibonacci 题意: 计算a[n]=f[n]∗(nm)的前k项和mod23333。f[n]是Fibonacci数列,f[1]=f[2]=1,k<=1e9,m<=40计算a[n]=f[n]*(n^m)的前k项和mod 23333。f[n]是Fibonacci数列,f[1]=f[2]=1,k<=1e9,m<=40 分析: 这样明显的复杂递推公式原创 2016-03-24 18:08:13 · 675 阅读 · 0 评论 -
FZU 1911 Construct a Matrix(矩阵快速幂+找规律)
题目链接: FZU 1911 Construct a Matrix 题意: 将Fibonacci数列前n项求和后%m得到res,问存不存在这样的一个res*res阶矩阵, 矩阵中每个元素只能是-1,0或者1,并且矩阵的每行每列和都不一样。如果存在输出任意一种矩阵的构造方式。 分析: 求出res的过程用矩阵快速幂很好解决。主要是构造矩阵这个东西比较麻烦。我是先用dfs跑了一下,void d原创 2016-03-22 22:28:42 · 565 阅读 · 0 评论 -
UVA 11551 Experienced Endeavour(矩阵快速幂)
题目链接: UVA 11551 Experienced Endeavour 题意: 给出n个数的数列,每次会由上一次数列的某些数相加生成新的新的数列(每一个数都是如此),然后给出每个数据由上一个数据的那些树得到,问重复r次得到的新数列是什么? 分析: 相当于给出了中间变化矩阵的具体方式,读入每个数的生成方式,r相当于幂,矩阵快速幂很裸的。//0K 26MS#include <cstdio原创 2016-03-21 16:26:35 · 525 阅读 · 0 评论 -
HDU 4565 So Easy!(矩阵快速幂+数学)
题目链接: HDU 4565 So Easy! 题意: ┌x┐┌x┐是向上取整的意思,如┌3.14┐=4┌3.14┐=4。给出a,b和n,ma,b和n,m计算SnSn. 分析:首先需要想到(a+sqrt(b))^n的结果能写成A+B*sqrt(b)的形式。n=1时是a+1*sqrt(b) ; A=a, B原创 2016-03-21 15:56:29 · 800 阅读 · 2 评论 -
HDU 4965 Fast Matrix Calculation(矩阵结合律)
题目链接: HDU 4965 Fast Matrix Calculation 题意: 分别给出一个n∗kn*k和k∗nk*n 的矩阵A和B,两矩阵相乘得到矩阵C,求出矩阵C的n∗nn*n次幂矩阵M, 输出将矩阵M中每个元素%6后的元素和。其中n<1000,2<=k<=6. 分析: 因为n实在太大了,开不了1000*1000的矩阵,但是可以利用矩阵相乘的结合律, A∗B∗A∗B∗A∗原创 2016-03-20 15:06:36 · 467 阅读 · 0 评论 -
UVA 10870 Recurrences(构造矩阵和快速幂)
题目链接: UVA 10870 Recurrences 题意: 给出递推式: f(n)=a1∗f(n−1)+a2∗f(n−2)+a3∗f(n−3)+...+ad∗f(n−d),n>df(n)=a1*f(n-1)+a2*f(n-2)+a3*f(n-3)+...+ad*f(n-d),n>d 其中a1,a2,a3...ada1,a2,a3...ad以及f(1),f(2),f(3)...f(3)f原创 2016-03-20 12:43:45 · 329 阅读 · 0 评论 -
UVA 10655 Contemplation! Algebra(构造矩阵和快速幂)
题目链接: UVA 10655 Contemplation! Algebra 题意: 给出a+b和ab值以及n求出a^n+b^n。数据long long 。 分析: 构造矩阵和快速幂。| 0 -1 | * | a^(n-2)+b^(n-2) | = | a^(n-1) + b^(n-1) | |-ab a+b | | a^(n-1)+b^(n-1) | |原创 2016-03-20 11:41:31 · 350 阅读 · 0 评论 -
UVA 10518 How Many Calls(求计算Fibonacci数列第n项时递归调用次数)
题目链接: UVA 10518 How Many Calls 分析: 根据公式 Cnt[i]=Cnt[i−1]+Cnt[i−2]+1Cnt[i]=Cnt[i-1]+Cnt[i-2]+1,且Cnt[0]=Cnt[1]=1Cnt[0]=Cnt[1]=1. 然后用矩阵快速幂构造矩阵解决就行了。 注意: 输出必须用”%lld”输出,用”%I64d”无限WA,简直了。。。。o(╯□╰)o//0K原创 2016-03-20 10:58:38 · 1836 阅读 · 0 评论 -
UVA 11149 Power of Matrix(矩阵幂和)
题目链接: UVA 11149 Power of Matrix 分析: 二分解决。例如计算S(7)=A+A2+A3+A4+A5+A6+A7S(7)=A+A^2+A^3+A^4+A^5+A^6+A^7可以改写为 S(7)=(A+A2+A3)+A4+A4∗(A+A2+A3)=A4+A4∗(E+A+A2+A3),S(7)=(A+A^2+A^3)+A^4+A^4*(A+A^2+A^3)原创 2016-03-20 10:21:08 · 483 阅读 · 0 评论 -
UVA 10689 Yet another Number Sequence(Fibonacci数列)
题目链接: UVA 10689 Yet another Number Sequence 题意: 裸的菲波那切数列#include <cstdio>#include <cstring>#include <cmath>#include <climits>#include <algorithm>using namespace std;struct Matrix{ int row,c原创 2016-03-20 10:12:40 · 542 阅读 · 0 评论 -
HDU 4686 Arc of Dream(构造矩阵)
题目链接: HDU 4686 Arc of Dream 题意: 给出n,a0,ax,ay,b0,bx,byn,a0,ax,ay,b0,bx,by.且a[i]=ax∗a[i−1]+ay,b[i]=bx∗b[i−1]+by.a[i]=ax*a[i-1]+ay,b[i]=bx*b[i-1]+by. 定义f[n]=f[n]=∑pk=0(a[k]∗b[k])(其中p=n−1)\sum_{k=0}^p(原创 2016-03-19 12:32:38 · 572 阅读 · 0 评论 -
HDU 4990 Reading comprehension(构造矩阵)
题目链接: HDU 4990 Reading comprehension/* *题意: *规定:当n为偶数时a[n]=2*a[n-1],n为奇数时a[n]=2*a[n-1]+1(n>1),且a[0]=0. *给出n和m求出a[n]%m的值,其中1<=n,m<=1e9. * *分析: *由于n,m太大,时间限制是1000ms,如果是普通的递推的话,应该会TLE。所以用矩阵解决 *构造矩原创 2016-03-19 10:46:26 · 421 阅读 · 0 评论 -
HDU 5015 233 Matrix(构造矩阵)
题目链接: HDU 5015 233 Matrix/* * 题意: * 定义a[0][1]=233,a[0][2]=2333,a[0][3]=23333,...给出n个数依次为a[1][0],a[2][0], * a[3][0]...a[n][0],且a[i][j]=a[i][j-1]+a[i-1][j](i>=1,j>=1),求出a[n][m]. * 其中n<=10,m<=10^9.原创 2016-03-19 10:43:42 · 394 阅读 · 0 评论 -
UVA 1386 Cellular Automaton(循环矩阵)
题目链接: UVA 1386 Cellular Automaton 题意: 给一个n个数组成的数环,每次取每个数左右范围d的所有数(包括本身和距离是d的数)相加和mod m生成新的数, 问操作k次后的数环是怎样的? 分析: 主要是n太大了,n<=500,拿样例 5 3 1 1 1 2 2 1 2 来说。可以构造矩阵,其中d=1.| 1 1 0 0 1 || 1 1 1原创 2016-03-21 20:46:38 · 503 阅读 · 0 评论