zoukankan      html  css  js  c++  java
  • HDU 1575 Tr A

    http://acm.hdu.edu.cn/showproblem.php?pid=1575

    矩阵+快速幂

    A^k是A*A*A...(k个A相乘)

    View Code
    #include <iostream>
    using namespace std ;
    void mul(int a[11][11],int b[11][11],int n)
    {
        int c[11][11] ;
        int i,j,k ;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                c[i][j]=0 ;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                for(k=0;k<n;k++)
                    c[i][j]=(c[i][j]+a[i][k]*b[k][j])%9973 ;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                a[i][j]=c[i][j] ;
    }
    void qpow(int m[11][11],__int64 k,int n)
    {
        int ans[11][11] ;
        int buff[11][11] ;
        int i,j ;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                if(i==j)
                    ans[i][j]=1 ;
                else
                    ans[i][j]=0 ;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                buff[i][j]=m[i][j] ;
        while(k)
        {
            if(k&1)
                mul(ans,buff,n) ;
            mul(buff,buff,n) ;
            k>>=1 ;
        }
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                m[i][j]=ans[i][j] ;
    }
    int main()
    {
        int t ;
        int m[11][11] ;
        scanf("%d",&t) ;
        while(t--)
        {
            int n ;
            __int64 k ;
            scanf("%d%I64d",&n,&k) ;
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    scanf("%d",&m[i][j]) ;
            qpow(m,k,n) ;
            int ans=0 ;
            for(int i=0;i<n;i++)
                for(int j=0;j<n;j++)
                    if(i==j)
                        ans=(ans+m[i][j])%9973 ;
            printf("%d\n",ans) ;
        }
        return 0 ;
    }
  • 相关阅读:
    shell编程
    git
    Flask-SQLAlchemy
    pipreqs
    命令行操作flask
    SQLAlchemy中scoped_session实现线程安全
    打印信息
    键盘事件
    安卓手机APP压力monkey测试
    手机APP功能测试经验分享2016.06.06
  • 原文地址:https://www.cnblogs.com/xiaohongmao/p/2624847.html
Copyright © 2011-2022 走看看