nyoj--148 fibonacci数列(二)(矩阵快速幂)
来源:互联网 发布:win7一拖二软件 编辑:程序博客网 时间:2024/04/26 01:03
nyoj 148
模板记录之。
#include <iostream>#include <fstream>#include <cmath>#include <vector>#include <algorithm>using namespace std;typedef vector<int> vec;typedef vector<vec> mat;const int mod = 10000;mat mul(mat &A, mat& B){ mat C(A.size(), vec(B[0].size())); for(int i = 0; i < (int)A.size(); ++i) for(int k = 0; k < (int)B.size(); ++k) for(int j = 0; j < (int)B[0].size(); ++j) C[i][j] = (C[i][j] + A[i][k] * B[k][j]) % mod; return C;}mat 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 > 0){ if(n & 1) B = mul(B, A); A = mul(A, A); n >>= 1; } return B;}void solve(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); cout << A[1][0] << endl;}int main(){ #ifdef LOCAL fstream cin("data.in"); #endif int n; while(cin >> n && n != -1) { solve(n); } return 0;}
0 0
- NYOJ 题目148 fibonacci数列(二)(矩阵快速幂)
- nyoj 148 fibonacci数列(二) 【矩阵快速幂】
- nyoj fibonacci数列(二) 148 (矩阵快速幂模板)
- nyoj--148 fibonacci数列(二)(矩阵快速幂)
- NYOJ 148 fibonacci数列(二)【矩阵快速幂】
- nyoj 148 fibonacci数列(二)(矩阵快速幂)
- nyoj 148 fibonacci数列(二)【矩阵】
- 矩阵快速幂(NYOJ 148 fibonacci数列(二), POJ 3233 Matrix Power Series, hdu 2157 How many ways??)
- nyoj fibonacci数列(二) 矩阵乘法
- nyoj 148 fibonacci数列(二)
- nyoj 148 fibonacci数列(二)
- NYOJ 148 fibonacci数列(二)
- nyoj-148-fibonacci数列(二)
- nyoj 148 fibonacci数列(二)
- fibonacci数列矩阵快速幂
- nyoj 301 递推求值 和 nyoj 148 fibonacci数列(二) 【矩阵】
- 矩阵快速幂 求Fibonacci数列poj3070
- Codevs_P1250 Fibonacci数列(矩阵快速幂)
- 求100以内的素数
- ajax学习总结前传--HTTP请求介绍
- UIScrollView基本使用
- 用户添加sudo权限
- PHP数据库操作
- nyoj--148 fibonacci数列(二)(矩阵快速幂)
- JFinal学习(二)
- 安卓6.0去掉标题栏的方法
- 几个常用的JS代码
- Java总结篇系列:类型转换/造型
- iOS cell分割线长度设置
- java基本规则
- Shell脚本
- UIScrollView使用自动布局不能滑动的解决方法