博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3070
阅读量:4308 次
发布时间:2019-06-06

本文共 939 字,大约阅读时间需要 3 分钟。

大意就是求斐波那契数列第n项,做法为矩阵快速幂。

代码

#include
#include
#include
#define LL long longusing namespace std;const int mod = 10000; struct Mat{ LL a[4][4]; Mat(){ memset(a,0,sizeof(a)); } Mat operator*(const Mat &h){ Mat c; for(register int i=1;i<=2;i++) for(register int j=1;j<=2;j++) for(register int k=1;k<=2;k++){ c.a[i][j]+=a[i][k]%mod*h.a[k][j]%mod; c.a[i][j]%=mod; } return c; }}ans,f;int n;inline void fast_pow(Mat b,int k){ for(;k;k>>=1){ if(k&1) f=f*b; b=b*b; }}int main(){ while(~scanf("%d",&n)){ if(n==-1) break; f.a[1][1]=0;f.a[1][2]=1; ans.a[2][1]=ans.a[1][2]=ans.a[2][2]=1; ans.a[1][1]=0; fast_pow(ans,n); printf("%lld\n",f.a[1][1]); } return 0;}

转载于:https://www.cnblogs.com/sdfzsyq/p/9677007.html

你可能感兴趣的文章
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>