poj 3070 Fibonacci (矩阵快速幂)
来源:互联网 发布:阿里云ecs ssh 编辑:程序博客网 时间:2024/06/05 04:13
http://poj.org/problem?id=3070
.
矩阵快速幂
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <cstdlib>#include <limits>#include <queue>#include <stack>#include <vector>#include <map>using namespace std;#define N 60#define INF 0x3f3f3f3f#define PI acos (-1.0)#define EPS 1e-8#define met(a, b) memset (a, b, sizeof (a))typedef long long LL;struct node{ int a[N][N];}s, e;node quick_pow (node p, int n);node mul (node p, node q);int main (){ int n; s.a[0][0] = 1; s.a[0][1] = 1; s.a[1][0] = 1; s.a[1][1] = 0; while (scanf ("%d", &n), n!=-1) { e = quick_pow (s, n); printf ("%d\n", e.a[0][1]); } return 0;}node quick_pow (node p, int n){ node tem; for (int i=0; i<2; i++) for (int j=0; j<2; j++) tem.a[i][j] = (i == j); while (n) { if (n & 1) tem = mul (tem, p); n /= 2; p = mul (p, p); } return tem;}node mul (node p, node q){ node tem; for (int i=0; i<2; i++) { for (int j=0; j<2; j++) { tem.a[i][j] = 0; for (int k=0; k<2; k++) tem.a[i][j] = (tem.a[i][j] + p.a[i][k] * q.a[k][j]) % 10000; } } return tem;}
1 0
- POJ 3070 Fibonacci 矩阵快速幂
- poj - 3070 - Fibonacci(矩阵快速幂)
- 矩阵快速幂 Fibonacci 3070 poj
- POJ 3070 Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci 矩阵快速幂
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- POJ-3070 Fibonacci 矩阵快速幂
- Fibonacci - POJ 3070 矩阵乘法快速幂
- poj 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci 矩阵快速幂
- POJ 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci 矩阵快速幂
- poj 3070 Fibonacci 【矩阵快速幂】
- POJ 3070 Fibonacci.(矩阵快速幂)
- 代理事件获取点击对应Cell
- 触发器与存储过程的区别
- 三消 图片高亮 添加离子效果
- svn 安装使用
- Fiddler的基本介绍
- poj 3070 Fibonacci (矩阵快速幂)
- C#实现12306自动登录的方法
- 通过httpClient实现google翻译
- uilabel 文字修改为不同颜色
- 【POJ】:POJ 3100解题报告
- 稳定排序和不稳定排序
- WSO2 IS配置Primary User Store——LDAP(Read-Only方式)
- 如何将你的程序打包成ipa
- 数据结构(第3章: 栈和队列)