原题链接 嗯...很多人应该是冲着这个标题来的 (斐波那契的魅力) 1.分析题面 点开题目,浏览一遍题目,嗯?这么简单?还是蓝题? 再看看数据范围,感受出题人深深的好意... \(n,m \leq 10^9\) 就算加上矩阵快速幂,\(fib[1000000000]\) 也不是高精度能存的下的. 所以,我们得想一点技巧. 2.寻找思路 深呼吸,思考学过的斐波那契数列的性质...(???) ...... 终于,它出现了! \(gcd(fib[x],fib[y])=fib[gcd(x,y)]\) 怎…
这道题其实是真的数学巨佬才撸的出来的题目了 但如果只知道结论但是不知道推导过程的我感觉证明无望 首先这道题肯定不能直接搞,而且题目明确说明了一些方法的问题 所以就暗示我们直接上矩阵了啦 但是如果直接搞还要高精度,不仅很烦而且绝壁TLE 所以我们引出性质,其中f[x]表示斐波那契数列的第x项: gcd(f[n],f[m])=f[gcd(n,m)] 具体的超详细的证明戳这里 然后题意相当于对f[gcd(n,m)]取膜1e9,就是最基本的矩阵优化了 关于矩阵优化斐波那契的板子题看这里 关于这题的COD…
题目链接:https://www.luogu.org/problemnew/show/P1306#sub gcd(f[m],f[n]) = f[gcd(m,n)] #include <iostream> #include <algorithm> #include <cstdio> using namespace std; ; long long n, m; long gcd(long long x, long long y) { ) return y; else ret…
题面 结论:gcd(F[n],F[m])=F[gcd(n,m)]; F[n]=a和F[n+1]=b F[n+2]=a+b,F[n+3]=a+2b,…F[m]=F[m?n?1]a+F[m?n]b F[n]=a,F[n+1]=b,F[m]=F[m?n?1]a+F[m?n] F[m]=F[m?n?1]?F[n]+F[m?n]?F[n+1] gcd(F[n],F[m])=gcd(F[n],F[m?n?1]?F[n]+F[m?n]?F[n+1]) gcd(F[n],F[m])=gcd(F[n],F[m?n…
洛谷 P1306 斐波那契公约数 题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? Update:加入了一组数据. 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例#1:  4 7 输出样例#1:  1 说明 用递归&递推会…
P1306 斐波那契公约数:https://www.luogu.org/problemnew/show/P1306 这道题目就是求第n项和第m项的斐波那契数字,然后让这两个数求GCD,输出答案的后8位: 思路: 1/gcd(F[n],F[m])=F[gcd(n,m)].所以先求出gcd(n,m),然后构造斐波那契数列的矩阵快速幂. #include <algorithm> #include <iterator> #include <iostream> #include…
P1306 斐波那契公约数 题意:求\(Fibonacci\)数列第\(n\)项和第\(m\)项的最大公约数的最后8位. 数据范围:\(1<=n,m<=10^9\) 一些很有趣的性质 引理1:\(F_{(a,b)}=(F_a,F_b)\) 在证明引理1之前,我们得先证明引理2和引理3 引理2:\(F_{m+n}=F_m*F_{n+1}+F_{m-1}*F_n=F_{m+1}*F_n+F_m*F_{n-1}\) 证明: 设正整数\(a>b\) \(F_a\) \(=F_{a-1}+F_{a…
P1306 斐波那契公约数 题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例#1: 4 7 输出样例#1: 1 说明 用递归&递推会超时 用通项公式也会超时 矩阵乘法优化斐波…
题目描述 对于Fibonacci数列:1,1,2,3,5,8,13......大家应该很熟悉吧~~~但是现在有一个很“简单”问题:第n项和第m项的最大公约数是多少? 输入输出格式 输入格式: 两个正整数n和m.(n,m<=10^9) 注意:数据很大 输出格式: Fn和Fm的最大公约数. 由于看了大数字就头晕,所以只要输出最后的8位数字就可以了. 输入输出样例 输入样例#1: 4 7 输出样例#1: 1 说明 用递归&递推会超时 用通项公式也会超时 Solution: 本题其实并不难,开始被题…
题目链接 有个定理叫gcd(f(n),f(m))=f(gcd(n,m)) 所以递推就好了. #include<cstdio> #include<cstdlib> #include<cctype> #include<cstring> #include<algorithm> inline long long read(){ ,f=; char ch=getchar(); while(!isdigit(ch)){ ; ch=getchar(); } w…