SDNU 1085.爬楼梯再加强版(矩阵快速幂)
Description
Input
Output
Sample Input
1 2
Sample Output
1 2
Source
#include<bits/stdc++.h> using namespace std; #define ll long longconst int inf = 0x3f3f3f3f; const int mod = 1000000007; const int maxn = 1000 + 8;ll n;struct matrix {ll m[3][3]; }b, tp, res, init;matrix mul(matrix a, matrix b) {matrix c;for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){c.m[i][j] = 0;for(int k = 0; k < 3; k++){c.m[i][j] += (a.m[i][k] * b.m[k][j]) % mod;c.m[i][j] %= mod;}}}return c; }matrix matrix_mi(matrix p, ll k) {matrix t = res;while(k){if(k & 1)t = mul(t, p);k >>= 1;p = mul(p, p);}return t; }int main() { // std::ios::sync_with_stdio(0); // cin.tie(0); // cout.tie(0);for(int i = 0; i < 3; i++)for(int j = 0; j < 3; j++)init.m[i][j] = 0;for(int i = 0; i < 3; i++)init.m[0][i] = 1;init.m[1][0] = 1;init.m[2][1] = 1;for(int i = 0; i < 3; i++)for(int j = 0; j < 3; j++)if(i == j)res.m[i][j] = 1;elseres.m[i][j] = 0;while(cin >> n){b = init;if(n == 1)cout << "1" << '\n';else if(n == 2)cout << "2" << '\n';else if(n == 3)cout << "4" << '\n';else{tp = matrix_mi(b, n - 3);cout << ((4 * tp.m[0][0]) % mod + (2 * tp.m[0][1]) % mod + tp.m[0][2] % mod) % mod << '\n';}}return 0; }
转载于:https://www.cnblogs.com/RootVount/p/11559755.html
SDNU 1085.爬楼梯再加强版(矩阵快速幂)相关推荐
- 20181023(模拟+矩阵快速幂及推公式+最短路+不知道什么DP)
NOIP欢乐%你赛 1. 小澳的方阵 (matrix.cpp/c/pas) [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力 ...
- 数论-快速幂、矩阵快速幂、慢速乘
文章目录 快速幂 矩阵快速幂 慢速乘 例题 HDU-2817 HDU-3117 XUJC-1395 快速幂 首先幂运算 a n a^n an就是 n n n个 a a a相乘,我们可以直接调用库函数 ...
- 加强版斐波那契数列(矩阵快速幂)
关于快速幂的讲解可以参见我的上一篇博客<快速幂> 题目链接:又见斐波那契 题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对10 9+7取模. ...
- SDNU 1062.Fibonacci(矩阵快速幂)
Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. I ...
- 又见斐波那契~矩阵快速幂入门题
链接:https://www.nowcoder.com/acm/contest/105/G 来源:牛客网 题目描述 这是一个加强版的斐波那契数列. 给定递推式 求F(n)的值,由于这个值可能太大,请对 ...
- 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...
- HDU 6185 Covering 矩阵快速幂 递推
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=6185 题目描述: 一个4*n的矩形, 你用1*2的矩形覆盖有多少种方案, n <= 1e18 ...
- bzoj 1409 Password 矩阵快速幂+欧拉函数
可以发现,该数组的mi就是斐波那契数列 所以要矩阵快速幂搞出第n位 但是斐波那契数列上涨的很快,这就需要欧拉定理了 p^phi(q)%q=1(gcd(p,q)==1) p是素数,所以可以用 然后需要5 ...
- POJ 2778 DNA Sequence [AC自动机 + 矩阵快速幂]
http://poj.org/problem?id=2778 题意:给一些只由ACGT组成的模式串,问有多少种长度为n且不含有给出的模式串的DNA序列. 自动机的状态转换可以看成一个有向图(有重边的) ...
最新文章
- 胡小明:大数据应用方向思考
- java守护线程和用户线程
- mvc ajax给control传值问题
- junit5和junit4_JUnit 5 –设置
- 中小型互联网企业迁移上云,保证云端资源安全迁移
- java knn文本分类算法_使用KNN算法的文本分类.PDF
- threadingdaemonmultiprocessing
- 某企业虚拟化平台时间同步异常排查
- 携程是如何借助“预测式外呼”提高呼叫效率的
- 如何优雅的关闭Golang Channel?
- Windows下保存git账号密码实现免输入
- JS如何判断一个对象是否为JSON对象
- 当360屠榜黑客奥斯卡,我们为什么要关注国家级网络安全战?
- mysql临时表在哪找_MySQL 中的临时表
- 微信群运营怎么做?一文讲透社群活跃技巧及发展模式
- 微信公众号文章爬取方法整理
- 谈谈利用统计工具做好网站数据分析
- 2013年将成为传统店铺的末日?
- TortoiseSVN (Subversion客户端) 使用手册(中文) (六)
- 微型计算机最核心的补件,春季高考试卷-天津市2016年春季高考计算机模拟试卷B【精】.doc...