poj 3070

Posted 不搞事情和咸鱼有什么区别

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 3070相关的知识,希望对你有一定的参考价值。

矩阵快速幂模板题

技术分享递推公式

ac代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <queue>
#include <stack>
#define mt(a) memset(a,0,sizeof(a))
using namespace std;
const int mod=10000;
struct Martix
{
    int mp[5][5];
    int r,c;
};
Martix mul(Martix a,Martix b)
{
    int r=a.r;
    int c=b.c;
    Martix temp;
    temp.r=r;
    temp.c=c;
    for(int i=0;i<r;i++)
    {
        for(int j=0;j<c;j++)
        {
            temp.mp[i][j]=0;
            for(int k=0;k<r;k++)
            {
                temp.mp[i][j]=(a.mp[i][k]*b.mp[k][j]+temp.mp[i][j])%mod;
            }
        }
    }
    return temp;
}
int pow(Martix a,int k)
{
    Martix ans;
    ans.r=2;
    ans.c=1;
    ans.mp[0][0]=1;//
    ans.mp[1][0]=0;
    while(k)
    {
        if(k&1) ans=mul(a,ans);
        k/=2;
        a=mul(a,a);
    }
    return ans.mp[0][0]%mod;
}
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        if(n==-1) break;
        Martix a;
        if(n==0)
        {
            cout<<0<<endl;
            continue;
        }
        a.r=a.c=2;
        a.mp[0][0]=a.mp[0][1]=a.mp[1][0]=1;
        a.mp[1][1]=0;
        int key=pow(a,n-1);
        cout<<key<<endl;
    }
    return 0;
}

 

以上是关于poj 3070的主要内容,如果未能解决你的问题,请参考以下文章

poj3070 求斐波那契数列第n项 ——矩阵快速幂

poj 3070 Fibonacci (矩阵快速幂乘/模板)

poj 3070 -- Fibonacci

POJ 3070 Fibonacci

poj 3070 -- Fibonacci

[POJ] 3070 Fibonacci