矩阵快速幂求斐波拉契数列的第n项
来源:互联网 发布:淘宝店没流量 编辑:程序博客网 时间:2024/05/22 06:53
代码:
#include <cstdio>#include <cstring>#define MOD 1000000007#define LL long long#define N 10struct node{int mat[N][N];};int n;node xx;node mul(node a, node b){node c;memset(c.mat, 0, sizeof(c.mat));for(int i= 0; i< n; i++)for(int j= 0; j< n; j++)for(int k= 0; k< n; k++)c.mat[i][j]+= a.mat[i][k]* b.mat[k][j];return c;}node fun(node a, int b){node ans= xx;node t= a;while(b){if(b&1)ans=mul(ans, t);t= mul(t, t);b/= 2;}return ans;}int main(){memset(xx.mat, 0, sizeof(xx.mat));for(int i= 0; i< N; i++)xx.mat[i][i]= 1;node a;int b;while(scanf("%d %d",&n,&b)!=EOF){for(int i= 0; i< n; i++)for(int j= 0; j< n; j++)scanf("%d",&a.mat[i][j]);node ans= fun(a, b);for(int i= 0; i< n; i++){for(int j= 0; j< n; j++)printf("%d ",ans.mat[i][j]);printf("\n");}}return 0;}
POJ 3070
代码:
#include <cstdio>#include <cstring>#define MOD 10000#define LL long long#define N 10struct node{int mat[N][N];};int n;node xx;node mul(node a, node b){node c;memset(c.mat, 0, sizeof(c.mat));for(int i= 0; i< n; i++)for(int j= 0; j< n; j++)for(int k= 0; k< n; k++)c.mat[i][j]= (c.mat[i][j]+ a.mat[i][k]* b.mat[k][j])%MOD;return c;}node fun(node a, int b){node ans= xx;node t= a;while(b){if(b&1)ans=mul(ans, t);t= mul(t, t);b/= 2;}return ans;}int main(){memset(xx.mat, 0, sizeof(xx.mat));for(int i= 0; i< N; i++)xx.mat[i][i]= 1;node a;int b;a.mat[0][0]= a.mat[0][1]= a.mat[1][0]= 1;a.mat[1][1]= 0;n= 2; while(scanf("%d",&b)!=EOF && b!=-1){if(b== 0){printf("0\n");continue;}if(b== 1 || b== 2){printf("1\n");continue;}node ans= fun(a, b-2);printf("%d\n",(ans.mat[0][0] + ans.mat[0][1])%MOD);}return 0;}
0 0
- 矩阵快速幂求斐波拉契数列的第n项
- 矩阵快速幂 求斐波拉切数列的第n项 poj3070
- 矩阵快速幂(求斐波拉契数列的第N项)
- 矩阵快速幂求斐波那契数列第n项
- poj 3070 Fibonacci (矩阵快速幂求斐波那契数列的第n项)
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项【矩阵快速幂】
- 51nod 1242 斐波那契数列的第N项 (矩阵快速幂)
- 【51Nod】1242 - 斐波那契数列的第N项(矩阵快速幂)
- 51nod 1242 斐波那契数列的第N项(矩阵快速幂)
- 51Nod-斐波那契数列的第N项(矩阵快速幂)
- 矩阵快速幂1242斐波那契数列的第N项
- 斐波那契数列的第N项 矩阵快速幂
- 1242 斐波那契数列的第N项(矩阵快速幂)
- 【51NOD1242】斐波那契数列的第N项(矩阵快速幂)
- [51NOD]-1242 斐波那契数列的第N项 [矩阵快速幂]
- 斐波那契数列的第N项(矩阵快速幂模板)
- 51 nod 1242 斐波那契数列的第N项 矩阵快速幂
- 输入一个数倒序输出
- python的函数
- 抗锯齿
- MinGW官方安装法
- 安装yarn下的spark过程记录以及sparkr安装记录
- 矩阵快速幂求斐波拉契数列的第n项
- Nginx 作为web server 的优化要点
- 关于生产者模式和消费者模式
- 数据库事务隔离级别
- 24.从公众号筹集10万股份学到的商业化思维
- spark:学习杂记+如何求丢失的数据例子--25
- 李白喝酒问题
- Android开发——Intent(2)
- 黑马程序员——C语言基础篇---指针