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

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>
#include<vector>
#include<cmath>const int maxn =1e5+5;
const int mod =9973;
typedef long long ll;
using namespace std;
struct mat
{int a[15][15];
};
int n;
mat Mul(mat a,mat b)
{mat ans;memset(ans.a,0,sizeof(ans.a));for(int t=0;t<n;t++){for(int j=0;j<n;j++){for(int k=0;k<n;k++){ans.a[t][j]=(ans.a[t][j]+a.a[t][k]*b.a[k][j])%mod;}}}return ans;
}
mat ans;
ll quickPow(ll x)
{mat res;memset(res.a,0,sizeof(res));for(int t=0;t<n;t++){res.a[t][t]=1;}while(x){if(x&1){res=Mul(ans,res);}ans=Mul(ans,ans);x>>=1;}ll ss=0;for(int t=0;t<n;t++){ss=(ss+res.a[t][t])%mod;}return ss;
}int main()
{int T;cin>>T;int k;while(T--){cin>>n>>k;for(int t=0;t<n;t++){for(int j=0;j<n;j++){scanf("%d",&ans.a[t][j]);}}ll s=quickPow(k);cout<<s<<endl;}return 0;
}

转载于:https://www.cnblogs.com/Staceyacm/p/10781745.html

Tr A(矩阵快速幂)相关推荐

  1. Tr A 矩阵快速幂

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

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

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

  3. 2021-2022年度第三届全国大学生算法设计与编程挑战赛(秋季赛)- 分组(矩阵快速幂套NTT优化dp)

    题目链接:点击查看 题目大意:给出 nnn 个连续的小球,每次可以选择单独的一个或者相邻的两个小球分成一组,允许有剩余的小球,问恰好分成 k∈{1,2,3,⋯,m}k\in\{1,2,3,\cdots ...

  4. 2021HDU多校8 - 7057 Buying Snacks(矩阵快速幂套NTT优化dp)

    题目链接:点击查看 题目大意:给出 nnn 种糖果,每种糖果有大小包装之分,有三种购买方案,价钱分别如下: 单独购买一个小的,花费一块钱 单独购买一个大的,花费两块钱 ∀i>1\forall i ...

  5. 矩阵快速幂的学习(系统的学习)

    学习博客:https://www.cnblogs.com/cmmdc/p/6936196.html https://www.cnblogs.com/yan-boy/archive/2012/11/29 ...

  6. ZYH的斐波那契数列【线段树动态开点+矩阵快速幂求斐波那契】

    描述 ZYH最近研究数列研究得入迷啦! 现在有一个斐波拉契数列(f[1]=f[2]=1,对于n>2有f[n]=f[n-1]+f[n-2]), 但是斐波拉契数列太简单啦,于是ZYH把它改成了斐波拉 ...

  7. 2020.7.20【算协集训】矩阵快速幂

    算法分析与排序 A - Fibonacci (POJ - 3070) 分析 代码 B - Tr A (HDU - 1575) 分析 代码 C - A Simple Math Problem (HDU ...

  8. 矩阵快速幂+构造方法

    与快速幂一样,可以将递推式通过二进制的方式来进行优化,这个学了快速幂就是十分容易理解 大概的板子如下: struct mat///自己定义大小的矩阵 {ll m[11][11]; }; mat mul ...

  9. 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂

    原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...

最新文章

  1. python 提取字符串中的中文字符
  2. 十秒解决开发环境跨域问题——取消浏览器同源策略
  3. Shell编程 之 for 循环
  4. 百度SEO Rspod紫光网站模板建站之星
  5. php调用airtestide,raw device
  6. .net项目进不去后台解决
  7. SAP OLE中常用的一些方法和属性
  8. visio 输出mysql_Visio2010建立ER图并直接导出为SQL语句
  9. 通过regedt查看计算机密码,教你操作电脑密码查看器 【解决办法】 的还原教程_...
  10. 什么是网桥,它应该如何搭建
  11. Unity Shader - 基础光照之漫反射
  12. java.lang.IllegalArgumentException 如何解决这个异常
  13. 【GIS】arcpy对栅格的常见操作——拼接裁剪代数计算
  14. PyQt5 QPushButton 设置文字对齐方式(基于setStyleSheet)
  15. Spring--Spring配置
  16. 提取IEMOCAP情感语料库标签
  17. 2012年一个屌丝程序员的学习总结:读书、户外、泡妞、习惯、母猪产后护理...
  18. Unity 批量修改命名(重命名)
  19. 条码打印软件之排版工具的应用
  20. python词云库——wordcloud

热门文章

  1. Java对象内存图二
  2. Linux 目录详细说明
  3. python3连接oracle数据库真操蛋_为64位Windows7的Python3安装MySQLdb
  4. python的仿真效果好吗_Python SimPy 仿真系列 (1)
  5. 【RTMP协议分析与抓包实测】
  6. linux 内存一直在增加,linux – 缓存内存和共享内存总和超过总内...
  7. 5gnr帧结构特点有哪些_真空离子束刻蚀设备的结构特点有哪些
  8. tp5怎么生成短链接_请问在tp5中怎样才能使用url函数?
  9. alter id order by_声卡id查找表
  10. 计算机网络整体框架理解与把握(持续更新)