zoukankan      html  css  js  c++  java
  • hdu 1575 Tr A (二分矩阵)

    Tr A

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 2449    Accepted Submission(s): 1819


    Problem Description
    A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973。
     
    Input
    数据的第一行是一个T,表示有T组数据。
    每组数据的第一行有n(2 <= n <= 10)和k(2 <= k < 10^9)两个数据。接下来有n行,每行有n个数据,每个数据的范围是[0,9],表示方阵A的内容。
     
    Output
    对应每组数据,输出Tr(A^k)%9973。
     
    Sample Input
    2
    2 2
    1 0
    0 1
    3 99999999
    1 2 3
    4 5 6
    7 8 9
     
    Sample Output
    2
    2686
     
    Author
    xhd
     
    Source
     
    Recommend
    linle   |   We have carefully selected several similar problems for you:  1757 1588 2256 2254 3117 
     
     1 //0MS    212K    969 B    G++
     2 /*
     3 
     4     第一次 做矩阵的题.有点渣,不过这题是水题。 
     5 
     6 */
     7 #include<stdio.h>
     8 #include<string.h>
     9 #define N 9973
    10 struct matrix{
    11     int g[15][15];
    12 }temp,ans;
    13 int n;
    14 matrix mutil(matrix a,matrix b)
    15 {
    16     matrix c;
    17     for(int i=0;i<n;i++)
    18         for(int j=0;j<n;j++){
    19             c.g[i][j]=0;
    20             for(int k=0;k<n;k++){
    21                 c.g[i][j]+=a.g[i][k]*b.g[k][j]; 
    22                 c.g[i][j]%=N;
    23             }
    24         }
    25     return c;
    26 }
    27 void solve(int k)
    28 {
    29     while(k){
    30         if(k&1) ans=mutil(temp,ans);
    31         temp=mutil(temp,temp);
    32         k/=2;
    33     }
    34     int sum=0;
    35     for(int i=0;i<n;i++){
    36         sum+=ans.g[i][i];
    37         sum%=N;
    38     }
    39     printf("%d
    ",sum);
    40 }
    41 int main(void)
    42 {
    43     int t,k;
    44     scanf("%d",&t);
    45     while(t--)
    46     {
    47         scanf("%d%d",&n,&k);
    48         for(int i=0;i<n;i++)
    49             for(int j=0;j<n;j++){
    50                 ans.g[i][j]=(i==j);
    51                 scanf("%d",&temp.g[i][j]);
    52             }
    53         solve(k);
    54     }
    55     return 0;
    56 } 
  • 相关阅读:
    对象比较
    ObservableCollection<T> 的同类 ListCollectionView
    数据模板--DataTemplate
    ListBox的虚拟可视化技术
    WPF 动画 和 色彩 的随笔
    Binding.RelativeSource 属性
    javascript基础DOM操作
    js dom 操作技巧
    js 内置对象和方法 示例
    javascript 编程技巧
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/3655138.html
Copyright © 2011-2022 走看看