一、题目

  P1962 斐波那契数列

二、分析

  比较基础的递推式转换为矩阵递推,这里因为$n$会超出$int$类型,所以需要用矩阵快速幂加快递推。

三、AC代码

 1 #include <bits/stdc++.h>
2
3 using namespace std;
4 #define ll long long
5 #define Min(a,b) ((a)>(b)?(b):(a))
6 #define Max(a,b) ((a)>(b)?(a):(b))
7 const ll mod = 1000000007;
8
9 struct Matrix
10 {
11 ll a[3][3];
12 Matrix() { memset(a, 0, sizeof(a)); }
13 Matrix operator*(const Matrix & b) const
14 {
15 Matrix res;
16 for(int i = 0; i < 2; i ++)
17 {
18 for(int j = 0; j < 2; j++)
19 {
20 for(int k = 0; k < 2; k++)
21 {
22 res.a[i][j] = (res.a[i][j] + a[i][k] * b.a[k][j]) % mod;
23 }
24 }
25 }
26 return res;
27 }
28 } ans, base;
29
30 void Pow(ll b)
31 {
32 while(b)
33 {
34 if(b&1)
35 {
36 ans = ans * base;
37 }
38 base = base * base;
39 b >>= 1;
40 }
41 }
42
43 void init()
44 {
45 base.a[0][0] = 0, base.a[0][1] = 1;
46 base.a[1][0] = 1, base.a[1][1] = 1;
47 ans.a[0][0] = 1, ans.a[0][1] = 1;
48 }
49
50 int main()
51 {
52
53 ll n;
54 while(std::cin>>n)
55 {
56 if(n > 2)
57 {
58 init();
59 Pow(n - 2);
60 std::cout << ans.a[0][1] << std::endl;
61 }
62 else
63 {
64 std::cout << "1" << std::endl;
65 }
66 }
67 return 0;
68 }

最新文章

  1. ASP.NET OWIN OAuth:遇到的2个refresh token问题
  2. JAVA简单工厂模式(从现实生活角度理解代码原理)
  3. 关于ssh上传文件
  4. 获取spring容器要小心的坑
  5. Hibernate的关联映射——单向1-1关联
  6. 协定类型不具有 ServiceContractAttribute 特性
  7. JS判断终端浏览器类型
  8. HTML5 前端框架和开发工具【下篇】
  9. Codeforces#363 Div2
  10. Amazon Alexa登录授权(Android)
  11. windows 上优雅的安装 node 和 npm
  12. 两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)
  13. IE浏览器-在Win7系统的安装和卸载
  14. MySQL报错: SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
  15. Spring.factories扩展机制
  16. PostgreSQL使用笔记
  17. java程序员如何编写更好的单元测试的7个技巧
  18. mysql - json串新增字段
  19. IOS-下载动画
  20. JavaScript 作用域链范例

热门文章

  1. C++:Process returned -1073741571 (0xC00000FD)
  2. codeforces 2C(非原创)
  3. sdutoj2887
  4. MYSQL基础常见常用语句200条
  5. js bitwise operation all in one
  6. JavaScript 如何使用 setTimeout 实现 setInterval
  7. js 如何获取某一个月的第一天是周几
  8. 运行Chrome浏览器如何添加Options
  9. LinkedList 的实现原理
  10. 谷歌地球服务器&quot;失联&quot;的替代方案