博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵快速幂 -- 兔子繁殖(也就是斐波那契数列啦)
阅读量:4886 次
发布时间:2019-06-11

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

兔子繁殖(也就是斐波那契数列啦)


下面这个应该可以计算到100多吧,没仔细算过

主要是利用的 矩阵快速幂 的方法


#include
#include
using namespace std;struct mat{ long long a[2][2];};mat mm(mat x,mat y){ mat r; memset(r.a,0,sizeof(r.a)); for(int i = 0;i<2;i++) { for(int j = 0;j<2;j++) { for(int k = 0;k<2;k++) { r.a[i][j] += x.a[i][k]*y.a[k][j]; } } } return r;}void mp(int n){ mat c,r; memset(r.a,0,sizeof(r.a)); c.a[0][0] = c.a[0][1] = c.a[1][0] = 1; c.a[1][1] = 0; r.a[0][0] = r.a[1][1] = 1; while(n) { if(n&1) // => n % 2 == 1 { r = mm(r,c); } c = mm(c,c); n /= 2; //n<<1 } cout<
>n; mp(n); return 0;}

快速幂的话,时间复杂度应该回小很多,如果拿来做openjudge之类的,只要不是太高精度,应该没问题

转载于:https://www.cnblogs.com/wenoi/p/9093968.html

你可能感兴趣的文章
C# 插入或删除word分页符
查看>>
数据库数据的查询----连接查询
查看>>
找不到可安装的ISAM ,asp.net读取数据丢失,解决的一列里有字符与数字的
查看>>
Java学习笔记三(对象的基本思想一)
查看>>
Java程序(文件操作)
查看>>
KMP算法 最小循环节 最大重复次数
查看>>
Proving Equivalences (强连通,缩点)
查看>>
Period (KMP算法 最小循环节 最大重复次数)
查看>>
sgu 103. Traffic Lights
查看>>
poj 3621 Sightseeing Cows
查看>>
hdu 3666 THE MATRIX PROBLEM
查看>>
TopCoder SRM 176 Deranged
查看>>
Javascript中数组与字典(即map)的使用
查看>>
memcached(十三)注意事项
查看>>
ITerms2在mac系统下的安装和配色,并和go2shell关联
查看>>
nginx常见面试题1
查看>>
Sublime Text 报“Pylinter could not automatically determined the path to lint.py
查看>>
自动化测试用例getText()获取某一个元素的值返回null或空
查看>>
大数智能未来
查看>>
virtualenv和virtualenvwrapper 的安装和使用
查看>>