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

    Tr A

    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
     
    矩阵快速幂模板,求Ak后的主对角线和。
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef vector<int> vec;
     4 typedef vector<vec> mat;
     5 const int mod = 9973;
     6 mat mul(mat &A, mat &B) {
     7     mat C(A.size(), vec(B[0].size()));
     8     for(int i = 0; i < A.size(); i ++) {
     9         for(int j = 0; j < B[0].size(); j ++) {
    10             for(int k = 0; k < B.size(); k ++) {
    11                 C[i][j] = (C[i][j] + A[i][k]*B[k][j])%mod;
    12             }
    13         }
    14     }
    15     return C;
    16 }
    17 
    18 mat pow(mat A, int n) {
    19     mat B(A.size(), vec(A.size()));
    20     for(int i = 0; i < A.size(); i ++) B[i][i] = 1;
    21     while(n) {
    22         if(n&1) B = mul(B,A);
    23         A = mul(A,A);
    24         n >>= 1;
    25     }
    26     return B;
    27 }
    28 int main() {
    29     int t, n, k;
    30     cin >> t;
    31     while(t--) {
    32         cin >> n >> k;
    33         mat A(n, vec(n));
    34         for(int i = 0; i < n; i ++) {
    35             for(int j = 0; j < n; j ++) {
    36                 cin >> A[i][j];
    37             }
    38         }
    39         mat B = pow(A, k);
    40         int ans = 0;
    41         for(int i = 0; i < n; i ++) {
    42             ans = (ans+B[i][i])%mod;
    43         }
    44         cout << ans << endl;
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    CSS3总结一:border(边框)
    浏览器控制台使用
    CSS3选择器
    jQuery实现搜索框插件+豆瓣音乐接口实现豆瓣搜索框
    服务器代理+jQuery.ajax实现图片瀑布流
    计算机网络之iframe内联框架跨域
    计算机网络之JSONP跨域
    程序集加载与反射(一):理论篇
    垃圾回收机制,是不是这样理解?
    异常处理机制
  • 原文地址:https://www.cnblogs.com/xingkongyihao/p/8991975.html
Copyright © 2011-2022 走看看