poj 3070 Fibonacci(矩阵快速幂,简单)
2014-02-21 22:27
471 查看
题目
还是一道基础的矩阵快速幂。
具体的居者的幂公式我就不明示了。
View Code
还是一道基础的矩阵快速幂。
具体的居者的幂公式我就不明示了。
#include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int num,mod=10000; struct matrix { int a[2][2]; }; matrix multiply(matrix x,matrix y)//矩阵乘法 { matrix temp; for(int i=0;i<num;i++) { for(int j=0;j<num;j++) { int ans=0; for(int k=0;k<num;k++) { ans+=((x.a[i][k]*y.a[k][j])%mod); } temp.a[i][j]=ans%mod; } } return temp; } matrix calc(matrix origin,matrix answ,int n)//矩阵快速幂——answ*origin^n { while(n) { if(n%2==1) answ=multiply(origin,answ); origin=multiply(origin,origin); n/=2; } return answ; } int main() { // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); int n; while(scanf("%d",&n)!=EOF) { if(n==-1)break; matrix origin= {0,1, 1,1}; matrix answ={0,0, 1,0}; num=2; if(n==0||n==1)printf("%d\n",n); else { answ=calc(origin,answ,n-1); printf("%d\n",answ.a[1][0]); } } return 0; }
View Code
相关文章推荐
- 笔记
- iOS安全攻防(十九):基于脚本实现动态库注入
- iOS程序启动过程笔记
- PHP案例 网页计数器设计
- vijos 1234 最小生成树kruskal
- adobe字体
- Bootstrap
- C#主要控件名简写对照表
- SOA服务设计与实现的几个语言无关的原则速记
- PHP案例之聊天室设计
- 坚持学linux--它就是未来
- 2014-人生旅途的节点
- PL/SQL Developer 远程连接Oracle数据库
- sjtu oj 1008.二哥买期货
- 驱动调试常见问题_LCD
- cocos2d-x中为什么要用sharedXX()函数创建单例类的static对象
- Oracle Linux Server release 6.3 下安装JDK
- 今天面试的没做好的题目整理
- sjtu oj 1003.二哥养细菌
- 网络编程socket