Problem Description

假设你有一个矩阵,有这样的运算A^(n+1) = A^(n)*A (*代表矩阵乘法)
现在已知一个n*n矩阵A,S = A+A^2+A^3+...+A^k,输出S,因为每一个元素太大了,输出的每个元素模10

Input

先输入一个T(T<=10),每组一个n,k(1<=n<=30, k<=1000000)

Output

输出一个矩阵,每个元素模10(行末尾没有多余空格)

Sample Input

  1. 1
  2. 3 2
  3. 0 2 0
  4. 0 0 2
  5. 0 0 0

Sample Output

  1. 0 2 4
  2. 0 0 2
  3. 0 0 0
  4.  
  5. 解法:矩阵的等比求和,知道这个就用模版写
  1. #include<bits/stdc++.h>
  2. #define clr(x) memset(x,0,sizeof(x))
  3. #define LL long long
  4. using namespace std;
  5. #define INF 0x3f3f3f3f
  6. typedef long long ll;
  7. const int N= +;
  8. struct Matrix
  9. {
  10. int m[N][N];
  11. };
  12. Matrix I;
  13. int n,k,M;
  14.  
  15. Matrix add(Matrix a,Matrix b)
  16. {
  17. Matrix c;
  18. for(int i=;i<n;i++)
  19. for(int j=;j<n;j++)
  20. c.m[i][j]=(a.m[i][j]+b.m[i][j])%M;
  21. return c;
  22. }
  23.  
  24. Matrix multi(Matrix a,Matrix b)
  25. {
  26. Matrix c;
  27. for(int i=;i<n;i++){
  28. for(int j=;j<n;j++){
  29. c.m[i][j]=;
  30. for(int k=;k<n;k++)
  31. c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%M;
  32. }
  33. }
  34. return c;
  35. }
  36. Matrix power(Matrix A,ll n)
  37. {
  38. Matrix ans=I;
  39. while(n){
  40. if(n&)
  41. ans=multi(ans,A);
  42. A=multi(A,A);
  43. n>>=;
  44. }
  45. return ans;
  46. }
  47.  
  48. Matrix sum(Matrix A,ll k)
  49. {
  50. if(k==) return A;
  51. Matrix t=sum(A,k/);
  52. Matrix cur=power(A,k/+(k&));
  53. t=add(t,multi(t,cur));
  54. if(k&) t=add(t,cur);
  55. return t;
  56. }
  57.  
  58. int main()
  59. {
  60. int T;
  61. ios::sync_with_stdio(false),cin.tie(),cout.tie();
  62. while(cin>>T){
  63. while(T--){
  64. cin>>n>>k;
  65. M=;
  66. Matrix A;
  67. for(int i=;i<n;i++){
  68. for(int j=;j<n;j++){
  69. cin>>A.m[i][j];
  70. A.m[i][j]%=M;
  71. }
  72. I.m[i][i]=;
  73. }
  74. Matrix ans=sum(A,k);
  75. for(int i=;i<n;i++){
  76. for(int j=;j<n;j++){
  77. if(j+!=n) cout<<ans.m[i][j]<<" ";
  78. else cout<<ans.m[i][j]<<endl;
  79. }
  80. }
  81. }
  82. }
  83. return ;
  84. }

华东交通大学2017年ACM“双基”程序设计竞赛 1005的更多相关文章

  1. 华东交通大学2017年ACM“双基”程序设计竞赛 1009

    Problem Description MDD随机生成了n(n<le5)个随机数x(x<=1e9),这n个随机数排成一个序列,MDD有q(q<=le5)个询问,每个询问给你一个a,问 ...

  2. 华东交通大学2017年ACM“双基”程序设计竞赛 1003

    Problem Description 有两个球在长度为L的直线跑道上运动,两端为墙.0时刻小球a以1m/s的速度从起点向终点运动,t时刻小球b以相同的速度从终点向起点运动.问T时刻两球的距离.这里小 ...

  3. 华东交通大学2017年ACM“双基”程序设计竞赛 1002

    Problem Description 一天YZW参加了学校组织交际舞活动,活动的开始活动方分别给男生和女生从1-n进行编号,按照从小到大顺时针的方式进行男女搭档分配,相同编号的男女组合成一对,例如一 ...

  4. 华东交通大学2017年ACM“双基”程序设计竞赛 1008

    Problem Description 长度为 n 的序列,把它划分成两段非空的子序列,定义权值为:两段子序列的最大值的差的绝对值.求可能的最大的权值.数据范围:2 <= n <= 10^ ...

  5. 华东交通大学2017年ACM“双基”程序设计竞赛 1010

    Problem Description 定义操作:将数 n 变为 f(n) = floor(sqrt(n)).即对一个数开平方后,再向下取整.如对 2 进行一次操作,开平方再向下取整, 1.41421 ...

  6. 华东交通大学2017年ACM“双基”程序设计竞赛 1001

    Problem Description 最近流行吃鸡,那就直接输出一行"Winner winner ,chicken dinner!"(没有双引号)模板代码:#include &l ...

  7. 华东交通大学2016年ACM“双基”程序设计竞赛 1005

    Problem Description 最近侯ry感觉自己在数学方面的造诣不忍直视:他发现他的学习速率呈一个指数函数递增,疯狂的陷入学习的泥潭,无法自拔:他的队友发现了他的学习速率y=e^(b*lna ...

  8. 华东交通大学2015年ACM“双基”程序设计竞赛1005

    Problem E Time Limit : 3000/2000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total Sub ...

  9. 华东交通大学2018年ACM“双基”程序设计竞赛 C. 公式题 (2) (矩阵快速幂)

    题目链接:公式题 (2) 比赛链接:华东交通大学2018年ACM"双基"程序设计竞赛 题目描述 令f(n)=2f(n-1)+3f(n-2)+n,f(1)=1,f(2)=2 令g(n ...

随机推荐

  1. 【转】 Pro Android学习笔记(七十):HTTP服务(4):SOAP/JSON/XML、异常

    目录(?)[-] SOAP JSON和XMLPullParser Exception处理 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件,转载须注明出处:http://blog. ...

  2. 问题:oracle ROW_NUMBER()over;结果: ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法

    ORACLE 中的 ROW_NUMBER() OVER() 分析函数的用法 ROW_NUMBER() OVER(partition by col1 order by col2) 表示根据col1分组, ...

  3. Asp.net 实现只能允许一个账号同时只能在一个地方登录

    先上帮助类: /// <summary> /// 单点登录帮助类 /// </summary> public class SSOHelper { /// <summary ...

  4. hadoop自己写的最高温度程序源码

    package com.teset; import java.io.IOException; import java.util.StringTokenizer; import org.apache.h ...

  5. tcpdump网络数据抓包

    tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的“头”完全截获下来提供 ...

  6. 【spring boot logback】日志颜色渲染,使用logback-spring.xml自定义的配置文件后,日志没有颜色了

    接着spring boot日志logback解析之后,发现使用logback-spring.xml自定义的配置文件后,日志没有颜色了 怎么办? 官网处理日志链接:https://logback.qos ...

  7. Jmeter JDBC Request的sql语句不支持;号

    Jmeter JDBC Request的sql语句不支持:号,如果要批量插入数据,则需要使用以下方式 INSERT INTO bank_info( `id`, `bank_code`, `bank_n ...

  8. 8、linux-数字计算

    bash内置了对整数四则运算的支持,但是并不支持浮点运算 bc命令是一种支持任意精度的交互执行的计算器语言,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下 在bc工作环境下,可以使用以下计 ...

  9. p1197&bzoj1015 星球大战

    传送门(洛谷) 传送门(bzoj) 题目 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的 ...

  10. CODING 代码托管架构升级之路

    本文为 CODING 创始团队成员王振威在『CODING 技术小馆:上海站』的演讲实录. CODING 技术小馆,是由国内专业的一站式软件服务平台 CODING 主办的一系列技术沙龙.将邀请数位业内知 ...