Tr A

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

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

矩阵快速幂的模板题

#include<iostream>
#include<cstdio>
#include<cstring>
#define mod 9973
#define maxn 12
using namespace std;
struct mat{
int s[maxn][maxn],n;
mat (int n1){//构造器
n = n1;
memset(s,,sizeof(s));//一定要初始化
}
void init(){
for(int i=;i<=n;i++){//单位矩阵的初始化,切记!
s[i][i] = ;//如果没有这个的话就不能直接相乘
}
}
mat operator * (const mat m){
mat ans(this->n);//理解this的用法
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
for(int k=;k<=n;k++){
ans.s[i][j] = (ans.s[i][j] + this->s[i][k] * m.s[k][j])%mod;
}
}
}
return ans;
}
};
mat quick_mod(mat &m,int p){//和整数快速幂一样的方法,只不过这里面的乘是矩阵的相乘
mat ans(m.n);
ans.init();// ans一定要为单位矩阵的!
while(p){
if(p&){
ans = ans * m;
}
m = m*m;
p >>= ;
}
return ans;
}
int main()
{
int t,n,k;
cin >> t;
while(t--){
cin >> n >> k;
mat m(n);
for(int i=;i<=n;i++){
for(int j=;j<=n;j++){
cin >> m.s[i][j];
}
}
mat ans(n);
ans = quick_mod(m,k);
int sum = ;
for(int i=;i<=n;i++){
sum = (sum+ans.s[i][i])%mod;
}
cout << sum << endl;
}
return ;
}

最新文章

  1. 我的SpringMVC配置
  2. 简单的mysql封装类
  3. codeforces A. Cinema Line 解题报告
  4. jquery ztree插件
  5. WEB 中的一些名词解释
  6. 阿里Android一面(校招)
  7. Mybatis实战之TypeHandler高级进阶
  8. 关于python编译的一点小结
  9. 发送POST测试请求的若干方法
  10. 【CJOJ P2226】[省常中2011S4] 圣诞节
  11. 库函数strstr的实现
  12. dataframe常用处理
  13. js获取今天是星期几
  14. Asp.net core 学习笔记 (Excel 读写)
  15. day03 字符串
  16. tf.placeholder使用说明
  17. 【jemter】HTTP请求参数化
  18. Oracle常见的异常处理
  19. jdbc注册驱动 class.forName()
  20. iPhone开发资源汇总

热门文章

  1. redis过期策略与内存淘汰机制分析
  2. web渗透---第二天
  3. 从JavaScript到Python之异常
  4. centos7安装mongodb详解
  5. React 如何搭建脚手架
  6. CSS3:pointer-events | a标签禁用
  7. 使用sar进行性能分析
  8. Jedis的配置和优化
  9. 宁远电子瑞芯微RK3399开发板DLT3399A底层接口调用
  10. 后端开发实践系列之三——事件驱动架构(EDA)编码实践