[P1306] 斐波那契公约数 (矩阵快速幂+斐波那契数列)
一开始数据没加强,一个简单的程序可以拿过
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] 斐波那契公约数 (矩阵快速幂+斐波那契数列)的更多相关文章
- 洛谷- P1306 斐波那契公约数 - 矩阵快速幂 斐波那契性质
P1306 斐波那契公约数:https://www.luogu.org/problemnew/show/P1306 这道题目就是求第n项和第m项的斐波那契数字,然后让这两个数求GCD,输出答案的后8位 ...
- POJ 3070(求斐波那契数 矩阵快速幂)
题意就是求第 n 个斐波那契数. 由于时间和内存限制,显然不能直接暴力解或者打表,想到用矩阵快速幂的做法. 代码如下: #include <cstdio> using namespace ...
- hdu 4549 M斐波拉契 (矩阵快速幂 + 费马小定理)
Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在 ...
- POJ 3070 Fibonacci矩阵快速幂 --斐波那契
题意: 求出斐波那契数列的第n项的后四位数字 思路:f[n]=f[n-1]+f[n-2]递推可得二阶行列式,求第n项则是这个矩阵的n次幂,所以有矩阵快速幂模板,二阶行列式相乘, sum[ i ] [ ...
- 数论+矩阵快速幂|斐波那契|2014年蓝桥杯A组9-fishers
标题:斐波那契 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 .... (x=1,2) f(x) = f(x-1) + f(x-2) .... (x>2) 对于给定的整数 n 和 ...
- poj3070 (斐波那契,矩阵快速幂)
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9630 Accepted: 6839 Descrip ...
- UVA10689 Yet another Number Sequence —— 斐波那契、矩阵快速幂
题目链接:https://vjudge.net/problem/UVA-10689 题解: 代码如下: #include <iostream> #include <cstdio> ...
- codeforce 227E 矩阵快速幂求斐波那契+N个连续数求最大公约数+斐波那契数列的性质
E. Anniversary time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...
- HDU6395(分段+矩阵快速幂)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6395 给你一个式子,给出你A,B,C,D,P,n,让你求出第n项的式子Fn.(其中ABCDPn均在1e9的 ...
随机推荐
- Python迷宫游戏(基础版)
# 画地图map_data = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 1, 0, 0, 0, ...
- asp.net core MVC 控制器,接收参数,数据绑定
1.参数 HttpRequest HttpRequest 是用户请求对象 QueryString Form Cookie Session Header 实例: public IActionResult ...
- 十六进制的ASCII码 "\u6cf0\u56fd" 解码成unicode
转码方法: C#: string a = "\u6cf0\u56fd"; string b = Encoding.UTF8.GetString(Encoding.UTF8.GetB ...
- Faster-RCNN tensorflow 程序细节
tf-faster-rcnn github:https://github.com/endernewton/tf-faster-rcnn backbone,例如vgg,conv层不改变feature大小 ...
- mysql8.0.11绿色版安装教程
解压到安装目录 在根目录建立data文件夹 建立my.ini文件 代码如下 # Other default tuning values # MySQL Server Instance Configur ...
- System.Data.Entity.Internal.AppConfig"的类型初始值设定项引发异常
在学习EF code First的小案例的时候,遇见了这个异常 <configSections> <!-- For more information on Entity Framew ...
- 【bzoj4887】[Tjoi2017]可乐 矩阵乘法
题解: 比较简单的一道题目 如果会倍增floyd这个就很显然的 每次转移看成乘上一个矩阵 另外自爆等同于连到一个特殊点,特殊点只能走自己 停留就是增加自环
- U32592 摘果实
链接:https://www.luogu.org/problemnew/show/U32592 题解: 60-70分 二分+网络流
- Python学习(三十一)—— Django之路由系统
转载自:http://www.cnblogs.com/liwenzhou/p/8271147.html Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLc ...
- html5的audio实现高仿微信语音播放效果(实际项目)
HTML部分: <div class="tab-pane fade dialog-record" id="dialogRecord"> <vo ...