Fib数列2 bzoj-5118

题目大意:求Fib($2^n$)。

注释:$1\le n\le 10^{15}$。

想法:开始一看觉得一定是道神题,多好的题面啊?结果...妈的,模数是质数,费马小定理就tm完事了,将fib数列的通项公式列出来然后费马小定理...

最后,附上丑陋的代码... ...(照着郭爷一顿瞎jb敲)

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define mod 1125899839733759
typedef long long ll;
inline ll mul(ll x,ll y,ll p)
{
ll ans=0;
while(y)
{
if(y&1) ans=(ans+x)%p;
x=(x+x)%p,y>>=1;
}
return ans;
}
inline ll pow(ll x,ll y,ll p)
{
ll ans=1;
while(y)
{
if(y&1) ans=mul(ans,x,p);
x=mul(x,x,p),y>>=1;
}
return ans;
}
struct data
{
ll v[2][2];
data(){memset(v,0,sizeof(v));}
ll*operator [] (int a){return v[a];}
data operator * (data a)
{
data ans;
int i,j,k;
for(i=0;i<2;i++)
for(k=0;k<2;k++)
for(j=0;j<2;j++)
ans[i][j]=(ans[i][j]+mul(v[i][k],a[k][j],mod))%mod;
return ans;
}
data operator^(ll y)
{
data x=*this,ans;
ans[0][0]=ans[1][1]=1;
while(y)
{
if(y&1)ans=ans*x;
x=x*x,y>>=1;
}
return ans;
}
}A;
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
ll n;
scanf("%lld",&n),n=pow(2,n,mod-1);
A[0][0]=0,A[0][1]=A[1][0]=A[1][1]=1,A=A^n;
printf("%lld\n",A[1][0]);
}
return 0;
}

小结:好题

[bzoj5118]Fib数列2_费马小定理_矩阵乘法的更多相关文章

  1. 【bzoj5118】Fib数列2 费马小定理+矩阵乘法

    题目描述 Fib定义为Fib(0)=0,Fib(1)=1,对于n≥2,Fib(n)=Fib(n-1)+Fib(n-2) 现给出N,求Fib(2^n). 输入 本题有多组数据.第一行一个整数T,表示数据 ...

  2. Fib数列2 费马小定理+矩阵乘法

    题解: 费马小定理 a^(p-1)=1(mod p) 这里推广到矩阵也是成立的 所以我们可以对(2^n)%(p-1) 然后矩阵乘法维护就好了 模数较大使用快速乘

  3. HDU4549 M斐波那契数列 —— 斐波那契、费马小定理、矩阵快速幂

    题目链接:https://vjudge.net/problem/HDU-4549 M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Li ...

  4. BZOJ 3240([Noi2013]矩阵游戏-费马小定理【矩阵推论】-%*s-快速读入)

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec   Memory Limit: 256 MB Submit: 123   Solved: 73 [ Submit][ St ...

  5. bzoj5118: Fib数列2(费马小定理+矩阵快速幂)

    题目大意:求$fib(2^n)$ 就是求fib矩阵的(2^n)次方%p,p是质数,根据费马小定理有 注意因为模数比较大会爆LL,得写快速乘法... #include<bits/stdc++.h& ...

  6. HDOJ 4549 M斐波那契数列 费马小定理+矩阵高速幂

    MF( i ) = a ^ fib( i-1 ) * b ^ fib ( i )   ( i>=3) mod 1000000007 是质数 , 依据费马小定理  a^phi( p ) = 1 ( ...

  7. M斐波那契数列(矩阵快速幂+费马小定理)

    M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Sub ...

  8. HDU 4549 M斐波那契数列(矩阵快速幂+费马小定理)

    M斐波那契数列 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Submi ...

  9. hdu 4549 M斐波那契数列(快速幂 矩阵快速幂 费马小定理)

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4549: 题目是中文的很容易理解吧.可一开始我把题目看错了,这毛病哈哈. 一开始我看错题时,就用了一个快速 ...

随机推荐

  1. k-means 聚类前的数据分析

    原始数据 Say you are given a data set where each observed example has a set of features, but has nolabel ...

  2. yrzl-cloud

  3. 第13课 SmartGit程序操作介绍

    http://www.syntevo.com/

  4. go之数据类型转换和类型断言

    一.类型转换 1.1 简单类型转换 格式 valueOfTypeB = typeB(valueOfTypeA) int 转 float64 package main import "fmt& ...

  5. Spark2.2,IDEA,Maven开发环境搭建附测试

    前言: 停滞了一段时间,现在要沉下心来学习点东西,出点货了. 本文没有JavaJDK ScalaSDK和 IDEA的安装过程,网络上会有很多文章介绍这个内容,因此这里就不再赘述. 一.在IDEA上安装 ...

  6. POJ 3230 DP

    f[i][j]=max(f[i][j],f[i-1][k]-a[k][j]+b[i][j]) i->第i天 j-–>到第j个城市 #include <cstdio> #incl ...

  7. JavaScript自动计算价格和全选

    JavaScript自动计算价格和全选,价格自增加减,复选框,反选,全选. 如图: 如图: CSS代码 @charset "gb2312"; /* CSS Document */ ...

  8. jQuery的基本概念与高级编程

    年创建的一个年月面世的1.5.2版本.作为一个JavaScript库,jQuery极大程度上解决了浏览器的兼容性问题,能够在IE 6.0 +.FF 2.0 +.Safari 3.0 +.Opera 9 ...

  9. 存档:Telerik Test Studio的摸索笔记

    http://www.51testing.com/?uid-170604-action-spacelist-starttime-1328025600-endtime-1330531200 http:/ ...

  10. Christopher G. Atkeson 简介

    有一个事实:双足机器人的稳定性问题单靠算法是搞不定的!!! 在2015 DARPA 机器人挑战赛中,许多参赛团队的机器人使用了Atlas,他们通过安装他们自己的软件并修改来让机器人保持平衡.来自WPI ...