Tr A

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
     output
2
2686
题意:得出一个n*n的矩阵的k次幂的矩阵,然后主对角线上的数值相加,对9973取余
注:(a+b+c+d.....+n)%mod=((((((a%mod)+b)%mod)+c)%mod)...+n)%mod;
#include <iostream>
#include <string.h>
using namespace std;
int n,k;
int MOD=9973;
struct matrix
{long long a[11][11];
};
matrix matrix_mul(matrix aa,matrix bb)
{matrix s;memset(s.a,0,sizeof(s.a));for(int i=0;i<n;++i)for(int j=0;j<n;++j)for(int k=0;k<n;++k)if(aa.a[i][k]&&bb.a[k][j])s.a[i][j]=(s.a[i][j]+aa.a[i][k]*bb.a[k][j])%MOD;/*for(int k=0;k<n;++k)for(int i=0;i<n;++i)if(aa.a[i][k])for(int j=0;j<n;++j)if(bb.a[k][j])s.a[i][j]=(s.a[i][j]+aa.a[i][k]*bb.a[k][j])%MOD;//复杂度优化,不过还没理解*/return s;
}
matrix matrix_pow(matrix a1)
{if(k==0)//题目中k>=2可以不用考虑return a1;matrix e;//定义一个单位矩阵(任何矩阵乘以单位矩阵都是他的本身)memset(e.a,0,sizeof(e.a));//for(int i=0;i<n;++i)e.a[i][i]=1;//上面都是单位矩阵的的数值定义while(k)//快速幂运算{if(k&1)//幂指数为奇数的时候执行e=matrix_mul(e,a1);a1=matrix_mul(a1,a1);//使其本身平方k>>=1;//表示指数左移一位,即指数除以二}return e;
}
int main()
{int t;cin>>t;while(t--){matrix a1,s;cin>>n>>k;for(int i=0;i<n;++i)for(int j=0;j<n;++j)cin>>a1.a[i][j];s=matrix_pow(a1);long long sum=0;for(int i=0;i<n;++i)sum=(sum+s.a[i][i])%MOD;//sum+=s.a[i][i]%MOD是sum=sum+s.a[i][i]%MOD)计算对角线上的值cout<<sum<<endl;}return 0;
}

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

  1. Tr A 矩阵快速幂

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

  2. hdu 2842 Chinese Rings 矩阵快速幂

    分析: 后面的环能不能取下来与前面的环有关,前面的环不被后面的环所影响.所以先取最后面的环 设状态F(n)表示n个环全部取下来的最少步数 先取第n个环,就得使1~n-2个环属于被取下来的状态,第n-1 ...

  3. HDU - 4990 Reading comprehension(矩阵快速幂,水题)

    题目链接:点击查看 题目大意:给出一段程序,进行优化后提交 题目分析:其实就是找规律,大水题一个,偶尔也是需要做做水题找找自信(逃) 先将题目中的程序拿下来,跑上100项,然后拿到oeis里找一下规律 ...

  4. HDU - 5015 233 Matrix(矩阵快速幂)

    题目链接:点击查看 题目大意:初始化:第一行依次为233,2333,23333....第一列依次为a0,a1,a2....(题目中会给出),再给出递推公式:,求矩阵中第n行m列的数字是多少 题目分析: ...

  5. Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)

    题目链接 F[1] = a, F[2] = b, F[i] = 2 * F[i-2] + F[i-1] + i ^ 4, (i >= 3) 现在要求F[N] 类似于斐波那契数列的递推式子吧, 但 ...

  6. HDU 2256Problem of Precision(矩阵快速幂)

    题意 求$(\sqrt{2} + \sqrt{3})^{2n} \pmod {1024}$ $n \leqslant 10^9$ Sol 看到题解的第一感受:这玩意儿也能矩阵快速幂??? 是的,它能q ...

  7. Tr A(矩阵快速幂)

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

  8. 考研路茫茫――单词情结 HDU - 2243(ac自动机 + 矩阵快速幂)

    考研路茫茫--单词情结 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  9. HDU 6185 Covering 矩阵快速幂 递推

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6185 题目描述: 一个4*n的矩形, 你用1*2的矩形覆盖有多少种方案, n <= 1e18 ...

最新文章

  1. Android--表格布局
  2. mysql最左侧原则的深入理解
  3. Spring 的优秀工具类盘点---转
  4. docker镜像常见命令
  5. 了解播放过滤器API
  6. [转]何时使用委托而不使用接口(C# 编程指南)
  7. 项目中SQL语句的一些应用总结
  8. K610D i7 D2 HM86 HD4600 安装 Mac OS 10.15.2 提供工具和EFI
  9. 8.3.2 构建组合行为
  10. ubuntu_使用ros显示imu的状态(6)
  11. 如何在计算机中增加字体,电脑如何添加字体?WinXP系统新增个性字体的方法
  12. 两个常用算法day1
  13. HTML如何设置幻灯片大小和位置,PPT教程:教你如何在PPT母版中统一标题的位置、大小、样式 | 演示说...
  14. python 数组写入文件 并 读取
  15. Python变量与注释高级用法
  16. 计算机人要具备的基础知识!
  17. 九日集训(每日打卡)第六天
  18. (二)第一步(安装和基本使用) | 普罗米修斯(Prometheus)
  19. 2022!影响百万用户金融信用评分,Equifax被告上法庭,罪魁祸首——『数据漂移』!
  20. window python 读取路径问题

热门文章

  1. PMWiki安装教程
  2. 使用Silverlight for Embedded开发绚丽的界面(2)
  3. css中小型大写,css3 – OpenType小型大写的CSS回退
  4. java 调试 gdb_android gdb 调试实例演示(有源代码篇)
  5. 算法分析的目的_掌握这些数学函数,你会在算法效率的分析时经常用到
  6. python机器学习实战(一)
  7. 【总结整理】开发说不能做怎么办
  8. python 输出“Hello, world”
  9. TCP/IP 某些最常见的错误原因码 (errno)列表
  10. 获取服务器配置信息的方法