题意:
       an=Σ1<=i<=kan-ibi mod 10 000 for n >= k,题意看了好久才懂,有点蛋疼啊,
这个题目要是能看懂题意就简单了,先给你k,然后给你a0 a1 a2 a3 ..ak-1.
然后给你b1 b2 b3 b4 ..bk,然后给你一个i,让你输出ai的值,如果i < k直接输出输入时的ai就行,否则就按照他给的那个公式
an=Σ1<=i<=kan-ibi mod 10 000 for n >= k

比如k=3
那么 a3 = a2*b1 + a1*b2 + a0*b3
     a4 = a3*b1 + a2*b2 + a1*b3
     a5 = a4*b1 + a3*b2 + a2*b3
     a6 = a5*b1 + a4*b2 + a3*b3
......

下面构造矩阵 ,这个矩阵是k*k的,也就是每次都是变的,但是有规律,最大是100*100
,拿k=3举例子

a3 a2 a1  0 0 b1  a2 a3 a4
          1 0 b2
          0 1 b3

这样就轻松构造这个矩阵了吧,要是k=4也一样
0 0 0 b1
1 0 0 b2
0 1 0 b3
0 0 1 b4
....

好啦就说这么多,最近在忙活写服务器玩,去写自己的服务器喽......


#include<stdio.h>
#include<string.h>#define MOD 10000typedef struct
{int mat[110][110];
}M;M matM(M a ,M b ,int n)
{M c;memset(c.mat ,0 ,sizeof(c.mat));for(int k = 1 ;k <= n ;k ++)for(int i = 1 ;i <= n ;i ++)if(a.mat[i][k])for(int j = 1 ;j <= n ;j ++)c.mat[i][j] = (c.mat[i][j] + a.mat[i][k] * b.mat[k][j]) % MOD;return c;
}M qPowMat(M a ,int b ,int n)
{M c;memset(c.mat ,0 ,sizeof(c.mat));for(int i = 1 ;i <= n ;i ++)c.mat[i][i] = 1;while(b){if(b & 1) c = matM(c ,a ,n);a = matM(a ,a ,n);b >>= 1;}return c;
}int main ()
{int k ,n ,i ,j;int A[105] ,B[105];M star ,ans;while(~scanf("%d" ,&k) && k){for(i = 0 ;i < k ;i ++)scanf("%d" ,&A[i]);for(i = k ;i >= 1 ;i --)scanf("%d" ,&B[i]);scanf("%d" ,&n);if(n < k){printf("%d\n" ,A[n]);continue;}memset(star.mat ,0 ,sizeof(star.mat));for(i = 1 ;i < k ;i ++)star.mat[i+1][i] = 1;for(i = 1 ;i <= k ;i ++)star.mat[i][k] = B[i];ans = qPowMat(star ,n - k + 1 ,k);int sum = 0;for(i = 1 ;i <= k ;i ++)sum = (sum + A[i-1] * ans.mat[i][k]) % MOD;printf("%d\n" ,sum);}return 0;
}

POJ2118基础矩阵快速幂相关推荐

  1. 数论基础--矩阵快速幂 及其例题

    比较详细的讲解了如何构造这个矩阵 https://blog.csdn.net/Akatsuki__Itachi/article/details/80443939 这是几个常用的递推式. 像 i3i^3 ...

  2. Starry的神奇魔法 矩阵快速幂

    题目描述 啦啦啦,Starry正愉快的做着编程题,代码是多么优美呀!突然,有人问他一道数学题,对于数学渣渣的Starry来说,这是多么的烦恼呀.不过不要紧,他还可以问其他人的,所以他想到了聪明的你们. ...

  3. 矩阵快速幂(Matrix_Fast_Power)

    一.基础知识 (1)矩阵乘法 https://blog.csdn.net/weixin_43272781/article/details/82899737 简单的说矩阵就是二维数组,数存在里面,矩阵乘 ...

  4. 矩阵快速幂的一份小结

    矩阵真是个好东西!虽然矩乘的复杂度有点难看... ... 这几天也做了不少矩阵题目,还是有几道好题目的.不过我打算从入门开始. 矩阵乘法:A[i][k]*B[k][j]=C[i][j];(A的第i行的 ...

  5. 矩阵快速幂的最简单用法

    矩阵快速幂 链接:https://ac.nowcoder.com/acm/contest/1168/K 来源:牛客网 题目描述 这个勇者明明超强却过分慎重,勇者龙宫院圣哉与n名冒险者一起去讨伐神秘魔物 ...

  6. [选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)

    多年不考试,一夜回到解放前 T1:花园 title solution code T2:月亮神树 title solution code T3:保护出题人 title solution code T1: ...

  7. 算法分类整理+模板①:矩阵快速幂

    一直有一个想法,感觉自己很多基础算法不是很扎实,想要找个机会写一些算法的整理,顺便自己总结一些实用的模板. 最近偶然在训练赛中连续做了2道思维+矩阵快速幂的题目,碰巧有时间,就以矩阵快速幂作为这个系列 ...

  8. 线性代数 —— 矩阵快速幂

    [概述] 矩阵快速幂利用矩阵的乘法与整数快速幂的结合,能够快速的算出 n 阶方阵 A 的 M 次幂 A^b,其结果仍是一个矩阵,无具体含义,在信息学竞赛中,矩阵快速幂常用于求解线性递推关系. 关于矩阵 ...

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

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

最新文章

  1. 一文读懂Faster R-CNN目标检测
  2. centos6.4 搭建knowlededgeroot-1.0.4知识库平台
  3. 正则表达式中的量词(限定符)含义的准确理解
  4. tcp之backlog参数
  5. JQuery 插件之Ajax Autocomplete(ajax自动完成)
  6. linux读取一行数据命令,常用的linux命令和逐行数据处理的例子
  7. javascript 一次开发,多平台运行
  8. Python的一些单行代码(摘抄)
  9. 地理编码涉及的专项技术
  10. mysql ssh 导入时注意问题
  11. ap音频测试仪软件,美国进口音频分析仪/AP音频测试仪/电声测试仪
  12. 你好!编程!你好!世界
  13. 红帽舍弃 KDE 桌面;暴雪与网易共同研发 “暗黑破坏神”手游
  14. 蚂蚁集团IPO的小秘密:人均月薪5.5万,利润有望超中国石油
  15. 绿巨能 macbook pro 电池
  16. 上帝视角学JAVA- 基础07-类05【2021-08-06】
  17. mosquitto接口流程图
  18. 个人收藏的一些资源网站
  19. 目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)
  20. 重磅|阿里云HBase Ganos全新升级,推空间、时空、遥感一体化基础云服务

热门文章

  1. Powershell快速入门(二) Shell编程
  2. 存储过程系列之调试存储过程 SQL Server 2005
  3. 敏捷个人手机应用:如何使用时中法目标
  4. linux下安装nagios
  5. 苏宁大调整中的三个关键
  6. 自定义windows开机声音
  7. Centos入门-3
  8. 搞不懂的算法-排序篇1
  9. asp.net中使用CKEditor
  10. C#类中操作UI层控件状态[原]