题目链接:http://poj.org/problem?id=3070

题意就是让你求斐波那契数列,不过n非常大,只能用logn的矩阵快速幂来做了

刚学完矩阵快速幂刷的水题,POJ不能用万能头文件是真的烦

#include<iostream>
#include<string.h>
#include<cmath>
#include<cstdio>
using namespace std;
typedef long long ll;
const int inf=<<;
const int maxn=1e5+;
const double pi=acos(-);
const int mod=;
struct matrix{
ll a[][]; //begin with 1
int r,c;
matrix(int n,int m):r(n),c(m){memset(a,,sizeof(a));}
ll* operator[](int x){return a[x];}
friend matrix operator*(matrix A,matrix B)
{
matrix C(A.r,B.c);
for(int i=;i<=A.r;i++)
for(int j=;j<=B.c;j++)
for(int k=;k<=A.c;k++){
C[i][j]+=(A[i][k]*B[k][j])%mod;
C[i][j]+=mod;
C[i][j]%=mod;
}
return C;
}
}; matrix qpow(matrix A,ll m)//方阵A的m次幂
{
matrix ans(A.r,A.c);
for(int i=;i<=A.r;i++) ans.a[i][i]=; //单位矩阵
while(m)
{
if(m&)ans=ans*A;
A=A*A;
m>>=;
}
return ans;
}
/*inline void read(ll &x){
char ch=x=0;
while(!isdigit(ch))
ch=getchar();
while(isdigit(ch))
x=x*10+ch-'0',ch=getchar();
}*/
int main(){
ll n;
while(~scanf("%lld",&n)){
if(n==-)break;
if(n==){
cout<<<<endl;continue;
}
matrix a(,);
a[][]=,a[][]=,a[][]=,a[][]=;
matrix x1(,);
x1[][]=,x1[][]=;
matrix ans=qpow(a,n-)*x1;//0cout<<233<<endl;
printf("%d\n",ans[][]%);
}
return ;
}

POJ3070 斐波那契数列 矩阵快速幂的更多相关文章

  1. HDU4549 M斐波那契数列 矩阵快速幂+欧拉函数+欧拉定理

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

  2. hdu4549 M斐波那契数列 矩阵快速幂+快速幂

    M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的 ...

  3. 洛谷P1962 斐波那契数列(矩阵快速幂)

    题目背景 大家都知道,斐波那契数列是满足如下性质的一个数列: • f(1) = 1 • f(2) = 1 • f(n) = f(n-1) + f(n-2) (n ≥ 2 且 n 为整数) 题目描述 请 ...

  4. 51nod1242 斐波那契数列 矩阵快速幂

    1242 斐波那契数列的第N项 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 #include<stdio.h> #define mod 100000000 ...

  5. hdu 4549 M斐波那契数列 矩阵快速幂+欧拉定理

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

  6. POJ 3070 Fibonacci【斐波那契数列/矩阵快速幂】

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17171   Accepted: 11999 Descr ...

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

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

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

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

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

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

随机推荐

  1. spark-sql中的DataFrame文件格式转储示例

    SparkConf sparkConf = new SparkConf() // .setMaster("local") .setAppName("DataFrameTe ...

  2. 洛谷P4092 [HEOI2016/TJOI2016]树 并查集/树链剖分+线段树

    正解:并查集/树链剖分+线段树 解题报告: 传送门 感觉并查集的那个方法挺妙的,,,刚好又要复习下树剖了,所以就写个题解好了QwQ 首先说下并查集的方法趴QwQ 首先离线,读入所有操作,然后dfs遍历 ...

  3. Java学习-049-正则工具类

    自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: ...

  4. IDEA--生成jar包并且导出jar包

    PS:首先在idea中新建一个java文件,且带有main方法(不带有main好像不能导出,不确定) 参考文章:http://www.cnblogs.com/blog5277/p/5920560.ht ...

  5. Java-idea-安装配置优化等

    1.属性配置 使用版本,winzip解压版,开发工具安装目录下idea.properties文件,自定义配置路径 # idea.config.path=${user.home}/.IntelliJId ...

  6. .net 程序加密

    .net 程序加密,一般是对生成的exe文件或者dll直接进行加壳,配合加密锁或者许可进行授权控制,既能保证安全性,又控制软件的使用. 加壳工具的选择 一般要考虑几点,第一是加壳的安全性,不能被轻易脱 ...

  7. spring cloud 定时任务

    项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态.一般来说,为了防止商户项目 ...

  8. JUnit单元测试代码

    package com.storage.test; import org.junit.Before; import org.junit.Test; import org.springframework ...

  9. py-faster-rcnn代码

    1. 对proposal层NMS的解释,很清晰 注意第18~20行是拿一个数(x1)和array(x1[ [0,2,3] ])去比:

  10. mysql查询语句and,or

    where查询里,常用到and,or and SELECT field1, field2,...fieldN FROM table_name1, table_name2... WHERE condit ...