poj 3070 Fibonacci (矩阵构造,水)
2015-02-26 19:41
246 查看
#include<iostream> #include<math.h> #include<stdio.h> #include<algorithm> #include<string.h> #include<vector> #include<queue> #include<map> #include<set> using namespace std; #define B(x) (1<<(x)) typedef long long ll; const int oo=0x3f3f3f3f; const ll OO=1LL<<61; const ll MOD=10000; const int maxn=2; int n; int val[100005]; struct Matrix { ll maze[2][2]; friend Matrix operator*(Matrix a,Matrix b) { Matrix c; memset(c.maze,0,sizeof c.maze); for(int i=0;i<2;i++) for(int j=0;j<2;j++) for(int k=0;k<2;k++) c.maze[i][j]=(c.maze[i][j]+a.maze[i][k]*b.maze[k][j]+MOD)%MOD; return c; } friend Matrix operator^(Matrix a,ll k) { Matrix c; for(int i=0;i<2;i++) for(int j=0;j<2;j++) c.maze[i][j]=(i==j); while(k) { if(k&1) c=c*a; a=a*a; k>>=1; } return c; } }; int main() { int n; Matrix A; A.maze[0][0]=1;A.maze[0][1]=1; A.maze[1][0]=1;A.maze[1][1]=0; while(scanf("%d",&n)!=EOF) { if(n==-1)break; Matrix ans=A^n; cout<<ans.maze[1][0]<<endl; } return 0; }
相关文章推荐
- [ACM] POJ 3070 Fibonacci (矩阵幂运算)
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci(简单矩阵快速幂)
- poj3070 Fibonacci(矩阵快速幂)
- POJ-3070-Fibonacci-求Fibonacci的矩阵方法,O(log(n))
- POJ 3070 Fibonacci (矩阵快速幂)
- POJ 3070 Fibonacci (矩阵快速幂)
- POJ3070 - Fibonacci 矩阵快速幂
- 【POJ 3070 Fibonacci】+ 矩阵快速幂
- POJ 3070 Fibonacci(矩阵高速功率)
- poj 3070 Fibonacci(矩阵快速幂)
- POJ 3070 Fibonacci (已有斐波那规律_矩阵快速幂取模)
- POJ - 3070 - Fibonacci (矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂模板,斐波那契)
- POJ-3070 Fibonacci 快速矩阵幂
- POJ 3070 Fibonacci (矩阵快速幂)
- poj3070 Fibonacci 矩阵快速幂
- POJ 3070 Fibonacci(矩阵快速幂)
- poj 3070 Fibonacci(矩阵快速幂)