zoukankan      html  css  js  c++  java
  • P1962 斐波那契数列

    链接:Miku

    ----------------------

    不显然的矩阵乘法

    ------------------

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    long long n;
    long long m=1000000007;
    long long c[5][5],a[5][5];
    long long ans[5][5];
    int main(){
        cin>>n;
        n--;
        ans[1][1]=ans[2][2]=1;
        a[1][2]=a[2][1]=a[2][2]=1;
        while(n){
            if(n%2){
                memset(c,0,sizeof(c));
                for(long long i=1;i<=2;++i)
                    for(long long j=1;j<=2;++j)
                        for(long long k=1;k<=2;++k)
                            c[i][j]=(c[i][j]+ans[i][k]*a[k][j])%m;
                for(long long i=1;i<=2;++i)
                    for(long long j=1;j<=2;++j)
                        ans[i][j]=c[i][j];
            }
            n/=2;
            memset(c,0,sizeof(c));
            for(long long i=1;i<=2;++i)
                for(long long j=1;j<=2;++j)
                    for(long long k=1;k<=2;++k)
                        c[i][j]=(c[i][j]+a[i][k]*a[k][j])%m;
            for(long long i=1;i<=2;++i)
                for(long long j=1;j<=2;++j)
                    a[i][j]=c[i][j];
        }
        cout<<(ans[1][1]+ans[2][1])%m;
        return 0;
    }
  • 相关阅读:
    1211.分割平衡字符串
    1282.用户分组
    分模块配置
    Spring Bean相关配置
    Spring IOC是什么
    Spring简介
    小黄衫感想
    团队展示
    原型设计
    结对作业
  • 原文地址:https://www.cnblogs.com/For-Miku/p/12493316.html
Copyright © 2011-2022 走看看