zoukankan      html  css  js  c++  java
  • Hdu1575Tr A矩阵

    矩阵快速幂,就是快速幂的乘法变成矩阵乘法,其余的都一样。

    #include <cstdio>
    #include <algorithm>
    #include <iostream>
    #include <string.h>
    using namespace std;
    const int mod = 9973;
    const int maxn = 12;
    struct Matrix
    {
        int m[maxn][maxn];
    };
    int n;
    Matrix Mul(Matrix a, Matrix b)
    {
        Matrix ans; 
        for (int i = 0; i < n; i++){
            for (int j = 0; j < n; j++){
                ans.m[i][j] = 0;
                for (int k = 0; k < n; k++){
                    ans.m[i][j] += (a.m[i][k] * b.m[k][j]);
                    ans.m[i][j] %= mod;
                }
            }
        }
        return ans;
    }
    
    Matrix fast(Matrix  a, int sum)
    {
        Matrix  ans;
        for (int i = 0; i < n;i++)
        for (int j = 0; j < n; j++)
            ans.m[i][j] = (i == j);
        while (sum){
            if (sum & 1) ans = Mul(ans, a);
            a = Mul(a, a);
            sum /= 2;
        }
        return ans;
    }
    
    int main()
    {
        int t,k;
        cin >> t;
        Matrix a;
        while (t--){
            cin >> n >> k;
            for (int i = 0; i < n;i++)
            for (int j = 0; j < n; j++)
                cin >> a.m[i][j];
            Matrix gao = fast(a, k);
            int ans = 0;
            for (int i = 0; i < n; i++)
                ans += gao.m[i][i], ans %= mod;
            printf("%d
    ", ans);
        }
        return 0;
    }
  • 相关阅读:
    Linux curl命令添加参数
    postman无限循环执行接口用例
    xshell用root用户登录ubuntu
    centos5 yum源配置
    移动端布局方案
    vue + store2实现未提交信息自动保存
    sublime text里的terminal
    20180204
    2018.1.3 interview
    http协议
  • 原文地址:https://www.cnblogs.com/yigexigua/p/4058143.html
Copyright © 2011-2022 走看看