斐波那契数列
来源:互联网 发布:网络在线测速度 编辑:程序博客网 时间:2024/06/15 20:39
typedef long long ll;const int MOD = 998244353;struct matrix//定义矩阵结构体{ ll m[2][2];}ans, base;matrix multi(matrix a, matrix b)//定义矩阵乘法{ matrix tmp; for(int i = 0; i < 2; ++i) { for(int j = 0; j < 2; ++j) { tmp.m[i][j] = 0; for(int k = 0; k < 2; ++k) tmp.m[i][j] = (tmp.m[i][j] + a.m[i][k] * b.m[k][j]) % MOD; } } return tmp;}ll fast_mod(ll n) // 求矩阵 base 的 n 次幂 { base.m[0][0] = base.m[0][1] = base.m[1][0] = 1; base.m[1][1] = 0; ans.m[0][0] = ans.m[1][1] = 1; // ans 初始化为单位矩阵 ans.m[0][1] = ans.m[1][0] = 0; while(n) { if(n & 1) //实现 ans *= t; 其中要先把 ans赋值给 tmp,然后用 ans = tmp * t ans = multi(ans, base); base = multi(base, base); n >>= 1; } return ans.m[0][1] % MOD;}
阅读全文
0 0
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- C#,webservice,http下载word,AsposeWords合并word
- MMC子系统调用过程浅析(Core层)
- JS基于正则实现数字千分位用逗号分割
- C++参数传递方式
- Python中使用ElementTree对XML文件进行解析
- 斐波那契数列
- 敏捷开发与传统开发
- 浅谈MVC架构—你到底有什么本事!!!
- Markdown 基本用法 (2)
- Android面试知识点总结-Android篇
- 51NOD 1294 修改数组 【LIS】
- 数据结构——二叉树的创建和遍历
- 第一个Docker镜像Java-web项目
- 使用mac自带终端修改hosts