nyoj--1000 又见斐波那契数列(快速幂+欧拉定理)
来源:互联网 发布:重庆网络干部学院 编辑:程序博客网 时间:2024/06/11 19:30
nyoj 1000
题解
…
矩阵快速幂可以求出
然后快速幂计算
需要注意一点,取模是对
这里的模
所以
#include <iostream>#include <vector>#include <algorithm>using namespace std;typedef vector<int> vec;typedef vector<vec> mat;typedef long long ll;const int mod = 1000000007;// A*Bmat mul(mat& A, mat& B){ mat C(A.size(), vec(B[0].size())); for(int i = 0; i < (int)A.size(); ++i) for(int j = 0; j < (int)B[0].size(); ++j) for(int k = 0; k < (int)B.size(); ++k) C[i][j] = (C[i][j] + (ll)A[i][k] * B[k][j]) % (mod - 1); return C;}// A^nmat pow(mat A, int n){ mat B(A.size(), vec(A.size())); for(int i = 0; i < (int)A.size(); ++i) B[i][i] = 1; while(n) { if(n & 1) B = mul(B, A); A = mul(A, A); n >>= 1; } return B;}// a^nint mypow(ll a, ll n){ ll res = 1; while(n){ if(n & 1) res = (res * a) % mod; a = (a * a) % mod; n >>= 1; } return res;}void solve(int a, int b, int n){ mat A(2, vec(2)); A[0][0] = 1; A[0][1] = 1; A[1][0] = 1; A[1][1] = 0; A = pow(A, n); int x = A[1][0], y = A[1][1]; cout << ((ll)mypow(b, x) % mod * mypow(a, y) % mod) % mod << endl;}int main(){ int a, b, n; while(cin >> a >> b >> n) { solve(a, b, n); } return 0;}
0 0
- nyoj--1000 又见斐波那契数列(快速幂+欧拉定理)
- nyoj 1000 又见斐波那契数列 (矩阵+费马小定理)
- hdoj M斐波那契数列 4549&nyoj 又见斐波那契数列 1000 (矩阵快速幂&规律)
- NYOJ 1000 又见斐波那契数列
- NYOJ-1000 又见斐波那契数列
- NYOJ301递推求值 NYOJ 1000又见斐波那契数列(矩阵快速幂)
- NYOJ_1000又见斐波那契数列_矩阵快速幂+费马小定理
- hdu 4549 M斐波那契数列 【矩阵+快速幂+欧拉定理】
- HDOJ M斐波那契数列 4549【矩阵快速幂+快速幂+费马小定理+欧拉函数】
- hdu4549 斐波那契数列(乘法递推) + 欧拉定理 (快速幂,模幂)
- 又见斐波那契数列
- 【矩阵快速幂】 hdu5667 Sequence 、nyoj1000 又见斐波那契数列
- hdu4549---M斐波那契数列(矩阵+欧拉定理)
- 【费马小定理降幂+矩阵快速幂+快速幂】M斐波那契数列 HDU
- hdoj 4549 M斐波那契数列 【矩阵快速幂 + 费马小定理 + 快速幂】
- HDU 4549 M斐波那契数列(费马小定理,矩阵快速幂,快速幂)
- hdu4549 M斐波那契数列 【矩阵快速幂+快速幂+欧拉函数降次】
- HDU 4549 M斐波那契数列 (费马小定理降幂&矩阵快速幂)
- 前端学习总结(十二)ionic——媲美原生的h5跨平台移动应用开发框架
- linux环境安装(jdk+Jboss)
- 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队 题解
- 3529: [Sdoi2014]数表|莫比乌斯反演|树状数组
- Codeforces 321E Ciel and Gondolas(DP)
- nyoj--1000 又见斐波那契数列(快速幂+欧拉定理)
- nm 提示 no symbol 的问题(strip)
- sharesdk 分享总结
- 3-sum问题的平方级别算法
- 评价标签FlowLayout实现
- 一个View的创建过程
- unauthenticated user连接问题
- springmvc+spring+mybatis+maven+mysql项目(二)Springmvc + ajax 实现javaweb验证码的制作及进行异步验证
- canvas实现放大镜功能