zoukankan      html  css  js  c++  java
  • HDU 1575

    A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。

    直接矩阵快速幂取模。

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 #define LL long long 
     6 const int mod=9973;
     7 struct P{
     8     int a[15][15];
     9 }c,s;    
    10 int t,n;
    11 LL k;
    12 P mult(P a,P b)
    13 {
    14     P q;
    15     for(int i=1;i<=n;i++)
    16     {
    17         for(int j=1;j<=n;j++)
    18         {
    19             q.a[i][j]=0;
    20             for(int k=1;k<=n;k++)
    21                 q.a[i][j]=(q.a[i][j]+a.a[i][k]*b.a[k][j] )%mod;
    22         }
    23     }
    24     return q;
    25 }
    26 void fuc(int p)
    27 {
    28     memset(c.a,0,sizeof(c.a));
    29     for(int i=1;i<=n;i++) c.a[i][i]=1;
    30     while(p)
    31     {
    32         if(p&1)
    33         {
    34             c=mult(c,s);
    35         }
    36         s=mult(s,s);
    37         p>>=1;
    38     }
    39 }
    40 int main()
    41 {
    42     scanf("%d",&t);
    43     while(t--)
    44     {
    45         scanf("%d%lld",&n,&k);
    46         for(int i=1;i<=n;i++)
    47             for(int j=1;j<=n;j++)
    48                 scanf("%d",&s.a[i][j]);
    49         fuc(k);
    50         int ans=0;
    51         for(int i=1;i<=n;i++) ans=(ans+c.a[i][i])%mod;
    52         printf("%d
    ",ans);
    53     }
    54 }
    我自倾杯,君且随意
  • 相关阅读:
    62 ip与int类型的转换
    60再谈指针
    59任由制转换
    58进制转换工具
    吉哥工作
    apple
    找第一个非0元素的位置
    若干个数据之和 不考虑溢出
    汇编程序w=x*y+z-200
    4位bcd数转换为2进制数
  • 原文地址:https://www.cnblogs.com/nicetomeetu/p/5644735.html
Copyright © 2011-2022 走看看