任意门:http://acm.hdu.edu.cn/showproblem.php?pid=1575

Tr A

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

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
 

题意概括:如题干

解题思路:矩阵快速幂(本质是二分优化快速进行幂运算)矩阵快速幂模板题

注意:单位矩阵初始化

AC code:

 #include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#define LL long long
using namespace std;
const int MAXN = ;
const int Mod = ;
int N;
struct mat
{
int m[MAXN][MAXN];
}base; mat muti(mat a, mat b)
{
mat res;
memset(res.m, , sizeof(res.m));
for(int i = ; i <= N; i++)
for(int j = ; j <= N; j++){
if(a.m[i][j]){
for(int k = ; k <= N; k++){
res.m[i][k] = (res.m[i][k] + a.m[i][j]*b.m[j][k])%Mod;
}
}
} return res;
} mat qpow(mat a, int n)
{
mat res;
memset(res.m, , sizeof(res.m));
for(int i = ; i <= N; i++) res.m[i][i] = ;
while(n){
if(n&) res = muti(res, a);
n>>=;
a = muti(a, a);
}
return res;
} int main()
{
int K, T_case;
scanf("%d", &T_case);
while(T_case--){
memset(base.m, , sizeof(base.m));
scanf("%d %d", &N, &K);
for(int i = ; i <= N; i++){
for(int j = ; j <= N; j++){
scanf("%d", &base.m[i][j]);
}
}
base = qpow(base, K);
int ans = ;
for(int i = ; i <= N; i++){
ans = (ans + base.m[i][i])%Mod;
}
printf("%d\n", ans);
} return ;
}

最新文章

  1. KMP算法
  2. [LeetCode] Valid Perfect Square 检验完全平方数
  3. x01.os.7: 傻子一样的等
  4. android开发之GenyMotion与intelliJ的配置
  5. &lt;经验杂谈&gt;C#/.Net字符串操作方法小结
  6. c#利用HttpWebRequest获取网页源代码
  7. BZOJ-2150部落战争(最小路径覆盖)
  8. Android动画(一)-视图动画与帧动画
  9. 错误代码: 1054 Unknown column &#39;course&#39; in &#39;field list&#39;
  10. Skyline Terra Explorer6.6弹出窗口实现复制功能
  11. eclipse中补齐代码的快捷键
  12. UART、SPI和I2C详解
  13. python 历险记(一)— python 的String,集合(List,元组,Dict)
  14. 前端 dojo
  15. js拾遗: 函数字面量
  16. hibernate 中的session和事务(Transaction)
  17. [BZOJ5330][SDOI2018]反回文串
  18. configure: error: mcrypt.h not found. Please reinstall libmcrypt.
  19. Kali渗透测试-SNMP
  20. OpenGL核心技术之Gamma校正

热门文章

  1. Angular4+NodeJs+MySQL 入门-06 接口配置
  2. 轻量级ORM框架:Dapper中的一些复杂操作和inner join应该注意的坑
  3. 【ExtJS】关于自定义组件(一)
  4. ActivityGroup和TabActiviy的差异性?
  5. ElasticSearch mapping中字段属性总结
  6. 1229:密码截获----java
  7. ireport 导出excel 分页 和 文本转数字格式的解决方法
  8. 【代码笔记】XML深入学习:DTD约束与DTD语法(2)
  9. angular2-动画
  10. 为 Drupal 7 构建一个新主题