一道经典的矩阵快速幂模板题。

传送门1——>快速幂基本思想
传送门2——>矩阵快速幂讲解(教主传授)

代码(去掉空行43行)

#include<iostream>
#include<cstring>
using namespace std;
int k, m;
struct Matrix {         //1、构建矩阵快速幂结构体 int a[10][10];Matrix() { memset(a, 0, sizeof(a)); }
};//5、构造矩阵运算mul
Matrix mul(Matrix A, Matrix B) {Matrix ret;for(int i = 0; i < 10; i++) for(int j = 0; j < 10; j++) {for(int k = 0; k < 10; k++)ret.a[i][j] += (A.a[i][k] * B.a[k][j])%m;ret.a[i][j] %= m;}  return ret;
} //4、构造快速幂pow
Matrix pow(Matrix A, int n) {Matrix ret;for(int i=0; i<10; i++) ret.a[i][i]=1;   //单位矩阵while(n) {if(n%2 == 1) ret=mul(ret, A);A=mul(A,A);n /= 2;}return ret;
} int main() {while(cin>>k>>m) {Matrix B;   //2、定义,存储求出的目标矩阵for(int i=0; i<10; i++) { int x; cin>>x; B.a[i][0]=x; }for(int i=0; i<10; i++) B.a[i][i+1]=1;if(k < 10) { cout << B.a[k][0] << endl; continue; } //3、特判 Matrix ans1=pow(B, k-9); int sum = 0;for(int i=0; i<10; i++) sum += (ans1.a[i][0]*(9-i))%m;    //最后乘就可以 cout << sum%m << endl; }
return 0; }

如果这篇文章对你产生了帮助,就请给博主一个小小的赞吧!大家的点赞是我创作的最大动力!

43行代码AC——HDU 1757 A Simple Math Problem(矩阵快速幂,附快速幂讲解)相关推荐

  1. HDU 1757 A Simple Math Problem (矩阵快速幂)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1757 在吴神的帮助下才明白如何构造矩阵,还是好弱啊. 此处盗一张图 1 #include <io ...

  2. HDU - 1757 A Simple Math Problem(矩阵快速幂,水题)

    题目链接:点击查看 题目大意:实现公式: f(x)=x,x<10 f(x)=a0*f(x-1)+a1*f(x-2)+--+a9*f(x-10) 题目给出a0~a9,一个n和一个m,要求输出f(n ...

  3. HDU 1757 A Simple Math Problem(矩阵快速幂)

    题目链接 题意 :给你m和k, 让你求f(k)%m.如果k<10,f(k) = k,否则 f(k) = a0 * f(k-1) + a1 * f(k-2) + a2 * f(k-3) + -- ...

  4. HDU 1757 A Simple Math Problem

    Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x & ...

  5. HDU - 1757 A Simple Math Problem (矩阵快速幂)

    Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.  If x >= 10 f(x) = a0 * ...

  6. hdu 1757 A Simple Math Problem 构造矩阵

    题意:函数f(x), 若 x < 10 f(x) = x. 若 x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + -- + ...

  7. HDU - 5974 A Simple Math Problem 题解

    D - Simple Math Problem 戳上方进入原题哟~ 题目大意 给一个数 a,b. 让你求满足一下条件的 X,Y: X+Y = a LCM(X,Y) = b 解析 题目给出时间限制1s, ...

  8. A Simple Math Problem 矩阵打水题

    A Simple Math Problem Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x ...

  9. 9行代码AC——HDU 6857 -Clockwise or Counterclockwise(2020 Multi-University Training Contest 8)(判断三点顺序)

    励志用尽量少的代码做高效表达 Problem Description It is preferrable to read the pdf statment. After some basic geom ...

最新文章

  1. 管理者应该如何进行精益管理呢?
  2. 无人系统自主性研究综述
  3. WinAPI: SetTextAlign - 设置绘图环境的文本对齐方式
  4. Linux下命令行(二)之文本处理基础
  5. SharePoint 2013 Workflow 状态栏失效
  6. 数据存储四种常见方式
  7. ansys 内聚力_内聚力 软件工程
  8. 吴恩达 Drive.ai 因经营困难“卖身”苹果
  9. windows “文件大小”与“占用空间”、文件系统与文件拷贝
  10. I.MX6 android 禁止低电量自动关机
  11. Linux如何安装并配置libxml2库?解决“libxml2 not found“问题
  12. AllenNLP框架学习笔记(模型篇之保存与加载)
  13. 塑料划分PP PE PS PA ABS PVC
  14. TalkingData技术实现分析
  15. IAR(For STM32) 安装,配置,工程创建,下载,调试
  16. Python3中使用flask_sqlalchemy的问题
  17. oracle羊毛,弃Cloudflare,薅Oracle羊毛
  18. 强化学习(一):简介——什么是强化学习?
  19. (搞笑)经典!一些很彪悍的句子
  20. 【转】ARM GIC中断系列(八):gicv3架构-波形为例、系列总结

热门文章

  1. docker下安装Pillow模块
  2. shell编程之文本处理工具awk
  3. 【内容生产创“新”之道】
  4. 端侧AI:高隐私、高可靠的智能个性化服务
  5. 全平台硬件解码渲染方法与优化实践
  6. Xilinx:让FFmpeg在FPGA上玩的爽
  7. 见良:学习多媒体主要靠实践
  8. Go 如何实现热重启
  9. ffmpeg-简单AES加解密记录
  10. gearman的安装与使用示例