[ 矩 阵 乘 法 ] 裴 波 拉 契 数 列 I V [矩阵乘法]裴波拉契数列IV [矩阵乘法]裴波拉契数列IV Description 求数列f[n]=f[n-2]+f[n-1]+n+1的第N项,其中f[1]=1,f[2]:=1. Input n(1<n<231-1) Output 一个数为裴波拉契数列的第n项mod 9973; Sample Input 10000 Sample Output 4399 题目解析 对于为什么用矩阵乘法来做,详见博客斐波那契数列II 关于递推式略, 详见博客…
传送门 洛谷1306传送门 ----------------------------------------------------------------------------------------------------------------------------------------------------- 内网题题面 题目描述 烦神看上了一个妹子,烦神想找她约会,可是妹子出了一道数学题来考验烦神,烦神只有做对了,妹子才会跟他去约会,题目是这样的: 给出两个正整数A和B,要求求…
[ 矩 阵 乘 法 ] 裴 波 拉 契 数 列 I I I [矩阵乘法]裴波拉契数列III [矩阵乘法]裴波拉契数列III Description 求数列f[n]=f[n-1]+f[n-2]+1的第N项.f[1]=1,f[2]=1. Input n(1<n<231-1) Output 一个数为裴波拉契数列的第n项mod 9973; Sample Input 12345 Sample Output 8932 题目解析 对于为什么用矩阵乘法来做,详见博客斐波那契数列II 我们考虑矩阵 ⊏ f […
[ 矩 阵 乘 法 ] 裴 波 拉 契 数 列 I I [矩阵乘法]裴波拉契数列II [矩阵乘法]裴波拉契数列II Description 形如 1 1 2 3 5 8 13 21 34 55 89 144-的数列,求裴波拉契数列的第n项. Input n (1< n <2^31) Output 一个数为裴波拉契数列的第n项mod 10000; Sample Input 123456789 Sample Output 4514 题目解析 首先看题面,是斐波那契数列.首先想到递归,但考虑到N的值…
矩阵,一个神奇又令人崩溃的东西,常常用来优化序列递推 在百度百科中,矩阵的定义: 在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合 ,最早来自于方程组的系数及常数所构成的方阵.这一概念由19世纪英国数学家凯利首先提出. 好,很高深对吧.那我们就更加直接地理解一下矩阵的实质:二维数组 好了这个SB都会,就不解释了 同二维数组一样,矩阵是一个'纵横排列的二维数据表格',它一般是一个n*m的二维数组,其中n*m表示它有n行m列 每一位上的数可以用下标i,j来表示,形如这样一个矩阵:…
static void Main(string[] args) { int a = Convert.ToInt32(Console.ReadLine()); //求第n位数字是多少 Console.WriteLine(F1(a)); //求前n项的和 Console.WriteLine(sum(a)); Console.ReadKey(); } /// <summary> /// 求第n位的数是几 /// </summary> /// <param name="a&…
这道题其实是真的数学巨佬才撸的出来的题目了 但如果只知道结论但是不知道推导过程的我感觉证明无望 首先这道题肯定不能直接搞,而且题目明确说明了一些方法的问题 所以就暗示我们直接上矩阵了啦 但是如果直接搞还要高精度,不仅很烦而且绝壁TLE 所以我们引出性质,其中f[x]表示斐波那契数列的第x项: gcd(f[n],f[m])=f[gcd(n,m)] 具体的超详细的证明戳这里 然后题意相当于对f[gcd(n,m)]取膜1e9,就是最基本的矩阵优化了 关于矩阵优化斐波那契的板子题看这里 关于这题的COD…
用矩阵求斐波那契数列,快速幂log(n),只用求最后4位(加和乘的运算中前面的位数无用) #include <stdio.h> #include <stdlib.h> int main() { /* (x y)(x y)= (x*x+y*s x*y+y*t) =(x*x+y*s y*(x+t)) (s t)(s t) (s*x+t*s s*y+t*t) (s*(x+t) t*t+y*s) (x y)(a b)= (x*a+y*c x*b+y*d) (s t)(c d) (s*a+t…
方法一  用数组开,一般开到1e7,1e8 左右的数组就是极限了   对时间也是挑战 #include<bits/stdc++.h> using namespace std; ; int a[maxn]; int32_t main() { a[]=; a[]=; ;i<maxn;i++) a[i]=a[i-]%+a[i-]%; cout<<a[maxn-]<<endl; } 方法二  求第多少个斐波那契数      时间还是个问题 #include<bits…
509. 斐波那契数 斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列.该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和.也就是: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N). 示例 1: 输入:2 输出:1 解释:F(2) = F(1) + F(0) = 1 + 0 = 1. 示例 2: 输入:3 输出:2 解释:F(3) = F(2) + F(1) = 1 + 1 =…