一开始数据没加强,一个简单的程序可以拿过

  1. gcd(f[n],f[m])=f[gcd(n,m)]

下面这个是加强数据之后的80分代码

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. ll gcd(ll a,ll b){
  5. return b?gcd(b,a%b):a;
  6. }
  7. int main()
  8. {
  9. ll n,m,a=,b=,c=;cin>>n>>m;
  10. for(ll i=;i<gcd(n,m);i++)
  11. {
  12. c=(a+b)%;
  13. a=b;
  14. b=c;//cout<<c%100000000<<endl;
  15. }
  16. cout<<c%;
  17. return ;
  18. }//1 1 2 3 5

最后一个点TLE,吸氧了之后还是过不了

因此是算法的问题

我这个蒟蒻不会优化,于是看了题解

题解给的是矩阵的优化

蒟蒻并不会这个算法

下面是神仙程序

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. #define ymw 100000000
  5. using namespace std;long long n,m;
  6. struct node{long long a[][],r,c;};
  7. inline node mul(node x,node y)//x*y的结果返回给z
  8. {
  9. node z;
  10. memset(&z,,sizeof(z));
  11. for(register int i=;i<x.r;i++)
  12. for(register int j=;j<y.c;j++)
  13. for(register int k=;k<x.c;k++)
  14. z.a[i][j]=(z.a[i][j]+x.a[i][k]*y.a[k][j])%ymw;
  15. z.r=x.r;z.c=y.c;
  16. return z;
  17. }
  18. inline long long ksm(long long y)//快速幂加速递推
  19. {
  20. node x,ans;
  21. memset(&x,,sizeof(x));
  22. memset(&ans,,sizeof(ans));
  23. x.r=x.c=ans.c=;
  24. ans.r=;
  25. x.a[][]=x.a[][]=x.a[][]=;
  26. ans.a[][]=ans.a[][]=;
  27. while(y)
  28. {
  29. if(y&) ans=mul(ans,x);
  30. x=mul(x,x);
  31. y>>=;
  32. }
  33. return ans.a[][];
  34. }
  35. signed main()
  36. {
  37. scanf("%lld%lld",&n,&m);
  38. n=__gcd(n,m);//计算
  39. if(n<) return putchar()&;//特判
  40. printf("%lld",ksm(n-));//输出
  41. }

[P1306] 斐波那契公约数 (矩阵快速幂+斐波那契数列)的更多相关文章

  1. 洛谷- P1306 斐波那契公约数 - 矩阵快速幂 斐波那契性质

    P1306 斐波那契公约数:https://www.luogu.org/problemnew/show/P1306 这道题目就是求第n项和第m项的斐波那契数字,然后让这两个数求GCD,输出答案的后8位 ...

  2. POJ 3070(求斐波那契数 矩阵快速幂)

    题意就是求第 n 个斐波那契数. 由于时间和内存限制,显然不能直接暴力解或者打表,想到用矩阵快速幂的做法. 代码如下: #include <cstdio> using namespace ...

  3. hdu 4549 M斐波拉契 (矩阵快速幂 + 费马小定理)

    Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在 ...

  4. POJ 3070 Fibonacci矩阵快速幂 --斐波那契

    题意: 求出斐波那契数列的第n项的后四位数字 思路:f[n]=f[n-1]+f[n-2]递推可得二阶行列式,求第n项则是这个矩阵的n次幂,所以有矩阵快速幂模板,二阶行列式相乘, sum[ i ] [ ...

  5. 数论+矩阵快速幂|斐波那契|2014年蓝桥杯A组9-fishers

    标题:斐波那契 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) .... (x>2) 对于给定的整数 n 和 ...

  6. poj3070 (斐波那契,矩阵快速幂)

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9630   Accepted: 6839 Descrip ...

  7. UVA10689 Yet another Number Sequence —— 斐波那契、矩阵快速幂

    题目链接:https://vjudge.net/problem/UVA-10689 题解: 代码如下: #include <iostream> #include <cstdio> ...

  8. codeforce 227E 矩阵快速幂求斐波那契+N个连续数求最大公约数+斐波那契数列的性质

    E. Anniversary time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...

  9. HDU6395(分段+矩阵快速幂)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=6395 给你一个式子,给出你A,B,C,D,P,n,让你求出第n项的式子Fn.(其中ABCDPn均在1e9的 ...

随机推荐

  1. 完美解决gradle下载慢的问题

    修改项目根目录下的文件 build.gradle ,使用国内阿里云镜像仓库地址. buildscript { repositories { maven{ url 'http://maven.aliyu ...

  2. Windows Phone MultiBinding :Cimbalino Toolkit

    在WPF和WIN8中是支持MultiBinding 这个有啥用呢,引用下MSDN的例子http://msdn.microsoft.com/en-us/library/system.windows.da ...

  3. javascript获取时间戳

    时间戳: 时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数.它也被称为 Unix 时间戳(Unix Timestamp). JavaScript 获取当前时间戳: < ...

  4. LeetCode高频148错题记录

    3. Max Points on a Line 共线点个数3种解法 思路一:思考如何确定一条直线,两点法,确定斜率后带入一点.有三种情况,1. 两点重合,2. 斜率不存在,3. 正常算,依次以每个点为 ...

  5. alpha冲刺9/10

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺倒计时之9 团队部分 后敬甲(组长) 过去两天完成了哪些任务 答辩准备中 和大佬们跟进进度 接下来的计划 准备答辩 ...

  6. alpha冲刺4/10

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:冲刺4 团队部分 后敬甲 过去两天完成了哪些任务 文字描述 主页部分图标的替换 -拍照按钮的设计和测试 GitHub代码 ...

  7. python全栈开发day74-普通验证码和滑块验证码

    一.昨日内容回顾 django认证系统 1. 默认auth_user ``` # 创建用户 from django.contrib.auth.models import User User.objec ...

  8. net core体系-1概要

    .net core最近园子讨论频率很高的话题,从不久前发布正式版本后,也是开始从netcore官网一步一步走向学习之路:.net跨平台的设计让人很是兴奋起来,因为做了多年的互联网研发者,见识了很多一流 ...

  9. 51nod1967 路径定向 Fleury

    题目传送门 题解 几乎是Fleury模板题. 一开始我们把图看作无向图,然后对于度为奇数的点增边,使得整个图的所有点都是偶数的. 然后跑一遍欧拉回路 Fleury ,所有的边就定向好了~ 代码 #in ...

  10. Servlet解决中文乱码问题

    request.setCharacterEncoding("UTF-8"); 并且把这句话放在request.getParameter()之前