zoukankan      html  css  js  c++  java
  • LightOj 1065

    题目

    和 LightOj 1096 - nth Term 差不多的题目和解法,这道相对更简单些,万幸,这道比赛时没把模版给抽风坏。

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    int num,mod;
    struct matrix
    {
           int a[5][5];
    }origin,answ;
    
    
    matrix multiply(matrix x,matrix y)//矩阵乘法
    {
           matrix temp;
         //  memset(temp.a,0,sizeof(temp.a));
           for(int i=1;i<=num;i++)
           {
                   for(int j=1;j<=num;j++)
                   {
                           int ans=0;
                           for(int k=1;k<=num;k++)
                           {
                                   ans+=((x.a[i][k]*y.a[k][j])%mod);
                           }
                           temp.a[i][j]=ans%mod;
                   }
           }
           
           return temp;
    }
    
    matrix calc(int n)//n次矩阵快速幂
    {
         while(n)
         {
                 if(n%2==1)
                        answ=multiply(origin,answ);
                 origin=multiply(origin,origin);
                 n/=2;
         }
         return answ;
    }
    
    int main()
    {
        int t,id,a,b,n,m;
        scanf("%d",&t);
        for(id=1;id<=t;id++)
        {
            scanf("%d%d%d%d",&a,&b,&n,&m);
            num=2;
            memset(answ.a,1,sizeof(answ.a));
            memset(origin.a,1,sizeof(origin.a));
            mod=1;
            while(m--)
                mod=mod*10;
            answ.a[1][1]=a;
            answ.a[2][1]=b;
            origin.a[1][1]=0;
            origin.a[1][2]=1;
            origin.a[2][2]=1;
            origin.a[2][1]=1;
            printf("Case %d: ",id);
            if(n==1)printf("%d
    ",a%mod);
            else if(n==2)printf("%d
    ",b%mod);
            else 
            {
                calc(n-2);
                printf("%d
    ",(answ.a[1][1]+answ.a[2][1])%mod);
            }
        }
        return 0;
    
    }
    View Code
    一道又一道,好高兴!
  • 相关阅读:
    .ellipsis 超过的部分显示省略号
    js 里面上一页和下一页
    CSS让你的IE浏览器崩溃(Crash your IE)作者:雪候鸟 来源: 风雪之隅
    元素居中显示
    jquery Carousel
    tabs 选择加载
    弹出窗
    下拉广告`
    opacity
    小波分析实验: 实验1 连续小波变换
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3558366.html
Copyright © 2011-2022 走看看