题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1575

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
解题思路:简单的矩阵快速幂。矩阵快速幂中初始化的矩阵就等同于普通快速幂初始化的1,这就是单位矩阵B,性质:B*A=A,即一开始如果二进制最低位为1时,要先与初始的矩阵a相乘可得到a原矩阵,这和普通快速幂是一样的,就是1*a=a。单位矩阵就是主对角线都是1,其他全是0。以后当循环到二进制的最低位为1,矩阵b就和此时的矩阵(a'')相乘即可。
AC代码:
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const int mod=9973;
 4 const int maxn=15;
 5 struct Matrix{int m[maxn][maxn];}init;
 6 int t,n,k;
 7 Matrix mul(Matrix a,Matrix b){
 8     Matrix c;
 9     for(int i=0;i<n;i++){//枚举第一个矩阵的行。
10         for(int j=0;j<n;j++){//枚举第二个矩阵的列。
11             c.m[i][j]=0;
12             for(int k=0;k<n;k++)//枚举第一个矩阵的列数
13                 c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%mod;
14         }
15     }
16     return c;
17 }
18 Matrix POW(Matrix a,int x){//矩阵快速幂模仿一般快速幂,x为幂指数
19     Matrix b;memset(b.m,0,sizeof(b.m));//先初始化为0,再构造单位矩阵
20     for(int i=0;i<n;++i)b.m[i][i]=1;
21     while(x){
22         if(x&1)b=mul(b,a);//如果x的二进制最低位为1,则乘上A^(2^i)
23         a=mul(a,a);//将矩阵a平方
24         x>>=1;
25     }
26     return b;
27 }
28 int main(){
29     while(cin>>t){
30         while(t--){
31             cin>>n>>k;
32             for(int i=0;i<n;++i)
33                 for(int j=0;j<n;++j)
34                     cin>>init.m[i][j];
35             Matrix res=POW(init,k);//矩阵快速幂取模运算
36             int ans=0;
37             for(int i=0;i<n;++i)//主对角线上各项的和
38                 ans=(ans+res.m[i][i])%mod;
39             cout<<ans<<endl;
40         }
41     }
42     return 0;
43 }

转载于:https://www.cnblogs.com/acgoto/p/9076294.html

题解报告:hdu 1575 Tr A相关推荐

  1. HDU (1575)Tr A ---矩阵快速幂

    Tr A Problem Description A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. Input 数据的第一行是一个T,表示有T组数据. 每 ...

  2. 题解报告(CDUT暑期集训——第三场)

    题解报告(CDUT暑期集训--第三场) A - Problem A. Ascending Rating HDU - 6319 思路:单调队列板子题?(但是弱的一批的我还是不会用(有空补上 用的滑动窗口 ...

  3. 题解报告(CDUT暑期集训——第二场)

    题解报告(CDUT暑期集训--第二场) D - Game HDU - 6312 思路:水题 Alice一直是必胜态 AC代码 #include<stdio.h> #include<i ...

  4. 题解报告(CDUT暑期集训——第四场)

    题解报告(CDUT暑期集训--第四场) Problem D. Nothing is Impossible HDU - 6335 思路:水题 排个序循环判断就出来了 AC代码 #include<s ...

  5. 题解报告(CDUT暑期集训——第一场)

    题解报告(CDUT暑期集训--第一场) A - Maximum Multiple HDU - 6298 思路:先按照题意打表 发现规律 就出来了(最开始没开long long贡献了3发 然后又忘了换行 ...

  6. 题解报告(CDUT暑期集训——第六场)

    题解报告(CDUT暑期集训--第六场) A - oval-and-rectangle HDU - 6362 思路:水题 积分一化就出来了 AC代码 #include<stdio.h> #i ...

  7. 题解报告(CDUT暑期集训——第五场)

    题解报告(CDUT暑期集训--第五场) B - Beautiful Now HDU - 6351 思路:直接暴力全排列就行了 最多\(10!\)次 题目限制2500ms 全排列大概是2000多ms(最 ...

  8. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  9. CSP-2019day1题解报告

    day1题解报告 题目 T1 T2 从链想起 转为正解 T3(摘自同级大佬xez) 题目 T1传送门 T2传送门 T3传送门 T1 乍一看,这道题做过,可以用对称性做,如果他的长度过了一半,就输出1, ...

  10. 爆炸的符卡洋洋洒洒题解报告

    爆炸的符卡洋洋洒洒题解报告 标签:动态规划 题目链接 来源:牛客网 解题思路: 显而易见的背包问题 但再观察a,b的数据范围,开不了那么大的dp数组 这就启发我们去优化,由于题目要求魔力总耗的是k的倍 ...

最新文章

  1. spring注入----反射模式
  2. [Google Guava] 7-原生类型
  3. VB.NET开发人员必备参考10本书目
  4. 阿里云ubuntu软件包镜像源地址
  5. Axiso解决跨域访问 !!!!
  6. php和mysql web开发 笔记_PHP和MySQL Web开发读书笔记---创建Web数据库
  7. 设置MYSQL数据库编码为UTF-8
  8. 晨哥真有料丨等女神分了我上位!
  9. android 蓝牙与单片机通信原理图,手机蓝牙与HC-06蓝牙模块控制单片机程序加APP...
  10. 力扣-746. 使用最小花费爬楼梯
  11. 使用bbscope进行大规模域名收集扫描
  12. 通俗易懂理解几何光学(三)平面与平面系统
  13. 819 c语言程序设计,大连海洋大学2021年考研819高级语言程序设计(C语言)考试大纲...
  14. 千橡校内网更名人人网
  15. mysql链接设置编码_mysql数据库链接编码设置
  16. 华为stk_Aloo计算机在哪里,华为STK-AL00是什么型号
  17. java画篮球_PS教程!手把手教你绘制炫酷的科比篮球海报
  18. deepin20.1安装的kodi17.6无法搜索pvr-iptvsimple插件的解决方法
  19. cgroup架构及控制文件介绍
  20. vue-router.esm-bundler.js?6c02:1474 Uncaught TypeError: Cannot read property ‘forEach‘ of undefined

热门文章

  1. ARKit何以从同类技术中胜出?
  2. Werkzeug 库——routing 模块简析
  3. 使用Leopard MVC
  4. linux网络服务学习笔记--基本网络配置
  5. mysql安装手册(2)
  6. IT公司是怎样面试的? (转载)
  7. 实践两个servlet小项目
  8. 我经常逛的技术网站,个个经典
  9. 数据库之互联网常用架构方案一览
  10. “37岁,年薪50万,一夜被裁”:伪上班,毁掉了多少中国年轻人