• hdu 1575 Tr A(矩阵快速幂,简单)


    题目

    和 LightOj 1096 - nth Term  类似的线构造一个符合题意的矩阵乘法模版,然后套快速幂的模版,具体的构造矩阵我就不作图了,看着代码也能理解吧

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    int num,mod=9973;
    struct matrix
    {
        int a[12][12];
    }origin,answ;
    
    matrix multiply(matrix x,matrix y)//矩阵乘法
    {
           matrix temp;
           for(int i=0;i<num;i++)
           {
                   for(int j=0;j<num;j++)
                   {
                           int ans=0;
                           for(int k=0;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)//矩阵快速幂——answ*origin^n
    {
         while(n)
         {
                 if(n%2==1)
                        answ=multiply(origin,answ);
                 origin=multiply(origin,origin);
                 n/=2;
         }
         return answ;
    }
    
    int main()
    {
        int k,t,a,b,n;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&k);
            num=n;
            for(int i=0;i<n;i++)
            {
                for(int j=0;j<n;j++)
                {
                    scanf("%d",&origin.a[i][j]);
                }
            }
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    answ.a[i][j]=(i==j);
            answ=calc(k);
            int ans=0;
            for(int i=0;i<n;i++)
                ans+=answ.a[i][i];
            printf("%d
    ",ans%mod);
        }
        return 0;
    }
    View Code
    一道又一道,好高兴!
  • 相关阅读:
    20150316--TP-01
    20150314--TP-02
    20150314--TP-01
    20150313+微信-全
    表单/iframe与video标签
    图像/超链接标签
    HTML列表与表格
    JAVA新的一天
    MySQL常用函数
    php基础--来自网页转载
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3558529.html
Copyright © 2020-2023  润新知