f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.

Sample Input
1 1 3 //a b n
1 2 10
0 0 0

Sample Output
2
5

矩阵A  * 矩阵B  = 矩阵C

a b        f(n-1)     f(n)

1 0        f(n-2)    f(n-1)

 1 # include <iostream>
 2 # include <cstdio>
 3 # include <algorithm>
 4 # include <map>
 5 # include <cmath>
 6 # define LL long long
 7 using namespace std ;
 8
 9 const int MOD = 7 ;
10
11 struct Matrix
12 {
13     int mat[2][2];
14 };
15
16 Matrix mul(Matrix a,Matrix b) //矩阵乘法
17 {
18     Matrix c;
19     for(int i=0;i<2;i++)
20         for(int j=0;j<2;j++)
21         {
22             c.mat[i][j]=0;
23             for(int k=0;k<2;k++)
24             {
25                 c.mat[i][j]=(c.mat[i][j] + a.mat[i][k]*b.mat[k][j])%(MOD);
26             }
27         }
28     return c;
29 }
30 Matrix pow_M(Matrix a,int k)  //矩阵快速幂
31 {
32     Matrix ans;
33     memset(ans.mat,0,sizeof(ans.mat));
34     for (int i=0;i<2;i++)
35         ans.mat[i][i]=1;
36     Matrix temp=a;
37     while(k)
38     {
39         if(k&1)ans=mul(ans,temp);
40         temp=mul(temp,temp);
41         k>>=1;
42     }
43     return ans;
44 }
45
46
47
48 int main ()
49 {
50    // freopen("in.txt","r",stdin) ;
51     int a,b,n;
52     while(scanf("%d%d%d" , &a,&b,&n) != EOF)
53     {
54         if (a==0 && b==0 && n==0)
55             break ;
56         if (n <= 2)
57         {
58             printf("1\n") ;
59             continue ;
60         }
61         Matrix t ;
62         t.mat[0][0] = a ;
63         t.mat[0][1] = b ;
64         t.mat[1][0] = 1 ;
65         t.mat[1][1] = 0 ;
66         Matrix ans = pow_M(t,n-2) ;
67         printf("%d\n" , (ans.mat[0][0] + ans.mat[0][1])%MOD) ;
68
69     }
70
71
72     return 0 ;
73 }

View Code

转载于:https://www.cnblogs.com/mengchunchen/p/4535624.html

hdu 1005 根据递推公式构造矩阵 ( 矩阵快速幂)相关推荐

  1. 根据递推公式构造系数矩阵用于快速幂

    简单的例子 Fibonacci数列 考虑 Fibonacci Fibonacci数列, F(n)=F(n−1)+F(n−2) F(n)=F(n-1)+F(n-2) 将右边两项看做是一个列向量的形式,令 ...

  2. HDU 4565So Easy!2012长沙邀请赛A题(共轭构造+矩阵的快速幂)

    So Easy! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  3. 求解斐波那契第n项的几种解法(含矩阵乘法+快速幂) Python实现

    斐波那契数列 首先我们来定义一下斐波那契数列: f(n)={0n = 01n = 1f(n−1)+f(n−2)n > 1f(n)= \begin{cases} 0 & \text {n ...

  4. bzoj 4417: [Shoi2013]超级跳马(矩阵合并+快速幂)

    4417: [Shoi2013]超级跳马 Time Limit: 10 Sec  Memory Limit: 256 MB Submit: 410  Solved: 252 [Submit][Stat ...

  5. 循环矩阵的快速幂(bzoj 2510: 弱题)

    2510: 弱题 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 408  Solved: 218 [Submit][Status][Discuss] ...

  6. 【BZOJ 2323】 2323: [ZJOI2011]细胞 (DP+矩阵乘法+快速幂*)

    2323: [ZJOI2011]细胞 Description 2222年,人类在银河系外的某颗星球上发现了生命,并且携带了一个细胞回到了地球.经过反复研究,人类已经完全掌握了这类细胞的发展规律: 这种 ...

  7. [矩阵乘法/快速幂专题]Arc of Dream,Recursive sequence,233 Matrix,Training little cats

    矩阵快速幂习题 复习矩阵乘法及快速幂模板 乘法模板 快速幂模板 T1:Arc of Dream 题目 题解 code T2:Recursive sequence 题目 题解 code T3:233 M ...

  8. [BZOJ3240][Noi2013]矩阵游戏 快速幂

    当我知道这题矩阵可以用费马小定理搞快速幂的时候 我眼泪都要落下来了QAQ 首先求一发通项F[1][1]->F[2][1]的通项 然后写成A+B的形式 若a != 1 A = (a^(m-1))* ...

  9. ZCMU-1618-骨牌覆盖(矩阵乘法+快速幂)

    1618: 骨牌覆盖1 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 264  Solved: 124 [Submit][Status][Web Bo ...

  10. Xn数列(矩阵乘法+快速幂+慢速乘法)

    Xn数列 题目描述: 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn m, a, c, x0, n, g<=10^18 输入描述: 一行 ...

最新文章

  1. RabbitMQ入门之安装配置与简单实例
  2. Vue中的前后台交互
  3. Hibernate 事物隔离级别 深入探究
  4. 张平文院士:展示计算数学的魅力
  5. 20171129-构建之法:现代软件工程-阅读笔记
  6. winpe加载raid_winpe集成raid驱动~
  7. VS Code下载安装教程
  8. 基于Tiny6410的LCD与一线触屏移植
  9. 用Java做一个基于Swing的多人网络聊天室
  10. 重拾C语言-摄氏度与华氏度相互转换
  11. 在线java编译器 api_代码在线编译器(上)- 编辑及编译
  12. 设备管理是对计算机什么的系统管理,什么是指对计算机系统所有的外部设备的管理...
  13. 识别图中文字python_python识别图片中文字的方法
  14. [论文阅读] (26) 基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
  15. IOS HTTPS 服务器信任评估
  16. 环信即时通讯云获得A轮融资 开启 “高品质更好用”IM时代
  17. Appium笔记1--基于python windows下的环境搭建
  18. 给博客添加rss订阅
  19. 新手21天学java后端-day4-oracle数据库
  20. Jupyter Notebook基础知识总结

热门文章

  1. 为什么是GCN(转)
  2. R-FCN算法的Caffe实现
  3. 机器学习(六)——降维处理原理
  4. 机器学习最简单算法——KNN算法(K-Nearest Neighbor)
  5. 图像梯度-Sobel算子
  6. javascript中常用的对象创建方式有哪些?
  7. qt for python对比pyqt_PyQt4和electron的第二轮对比
  8. kubernetes视频教程笔记 (23)-存储-Volume
  9. 浅析bin,lib,src的区别
  10. 2021年四川省卫生副高考试成绩查询时间,2021年四川卫生资格成绩查询时间及查分入口【6月4日起】...