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

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

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

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
int main()
{
ll n,m,a=,b=,c=;cin>>n>>m;
for(ll i=;i<gcd(n,m);i++)
{
c=(a+b)%;
a=b;
b=c;//cout<<c%100000000<<endl;
}
cout<<c%;
return ;
}//1 1 2 3 5

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

因此是算法的问题

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

题解给的是矩阵的优化

蒟蒻并不会这个算法

下面是神仙程序

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ymw 100000000
using namespace std;long long n,m;
struct node{long long a[][],r,c;};
inline node mul(node x,node y)//x*y的结果返回给z
{
node z;
memset(&z,,sizeof(z));
for(register int i=;i<x.r;i++)
for(register int j=;j<y.c;j++)
for(register int k=;k<x.c;k++)
z.a[i][j]=(z.a[i][j]+x.a[i][k]*y.a[k][j])%ymw;
z.r=x.r;z.c=y.c;
return z;
}
inline long long ksm(long long y)//快速幂加速递推
{
node x,ans;
memset(&x,,sizeof(x));
memset(&ans,,sizeof(ans));
x.r=x.c=ans.c=;
ans.r=;
x.a[][]=x.a[][]=x.a[][]=;
ans.a[][]=ans.a[][]=;
while(y)
{
if(y&) ans=mul(ans,x);
x=mul(x,x);
y>>=;
}
return ans.a[][];
}
signed main()
{
scanf("%lld%lld",&n,&m);
n=__gcd(n,m);//计算
if(n<) return putchar()&;//特判
printf("%lld",ksm(n-));//输出
}

[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. HDU 3336 Count the string(next数组运用)

    Count the string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. Debug.Assert vs Exception Throwing(转载)

    来源 Q: I've read plenty of articles (and a couple of other similar questions that were posted on Stac ...

  3. zeromq的安装,部署(号称最快的消息队列,消息中间件)

    1:Storm作为一个实时处理的框架,产生的消息需要快速的进行处理,比如存在消息队列ZeroMQ里面. 由于消息队列ZeroMQ是C++写的,而我们的程序是运行在JVM虚拟机里面的.所以需要jzmq这 ...

  4. Give root password for maintenance(or type control -D to continue)

    2017-09-30 18:12:08 1:错误如图,本来开机准备用一下虚拟机,就出现一个这,为啥记录一下呢,因为网上好多不是很靠谱. 原因可能是之前关闭虚拟机的时候不小心出现异常了: 2:解决办法: ...

  5. js,JQuery实现,带筛选,搜索的select

    代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title& ...

  6. sqlldr的使用

    1,在公司进行预处理的时候,发现文件不能入库,而公司前辈使用的是sqlldr的技术将解析后的文件入库,前辈在测试的时候使用的是本机上的数据库(见图一),没有使用完整的远程连接oracle的正确方式,所 ...

  7. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十一集之安装FastDFS】

    1,安装FastDFS之前,先安装libevent工具包. yum -y install libevent 2,安装libfastcommonV1.0.7工具包.有可能找到新版本的zip压缩包:lib ...

  8. JavaSE| 面向对象的三大特征

    1.面向对象的基本特征之一:封装Encapsulation 目的:隐藏实现细节,让使用者方便,让代码更安全 将对象的属性和行为封装起来,其载体就是类.类通常对客户隐藏其实现细节,这就是封装的思想. 封 ...

  9. 070 DStream中的transform和foreachRDD函数

    1.说明 DStream的API不够满足使用的时候,可以使用这两个函数,将dstream转换为rdd,然后进行操作 2.transform transform:将DStream的操作转换为RDD的操作 ...

  10. hdu 2091空心三角形

    把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果.  Input每行包含 ...