51nod 1242 斐波那契数列的第N项
2015-06-21 16:42
411 查看
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1242
#include <cstdio> typedef long long ll; const int mod = 1e9+9; struct Mat { ll matrix[2][2]; }; Mat mul(Mat a,Mat b) { Mat c; for(int i=0;i<2;i++) for(int j=0;j<2;j++) { c.matrix[i][j]=0; for(int k=0;k<2;k++) { c.matrix[i][j]+=(a.matrix[i][k]*b.matrix[k][j])%mod; } c.matrix[i][j]%=mod; } return c; } Mat mat; Mat solve(ll m) { Mat mt=mat; m--; while(m) { if(m&1) { mt=mul(mat,mt); m--; } mat=mul(mat,mat); m/=2; } return mt; } int main() { //freopen("a.txt","r",stdin); ll n; scanf("%lld",&n); mat.matrix[0][0]=mat.matrix[0][1]=mat.matrix[1][0]=1; mat.matrix[1][1]=0; Mat c=solve(n-1); printf("%lld\n",c.matrix[0][0]); return 0; }
相关文章推荐
- 贪心 - poj3258 River Hopscotch
- NavigationViewController
- Linux内核(一)系统启动过程
- Ubuntu10.10可用的源
- 表函数
- ServletContext与ServletConfig的详解及差异
- 第十六周阅读程序(1)
- 程序员能力矩阵 — 敢测吗?看自己在哪个档次
- PIXHAWK 软件构架
- 成员变量和局部变量
- Linux搭建Zabbix监控服务
- Effective C++条款36解读: 绝不重新定义继承而来的non-virtual函数
- TCP/IP协议族-----7、网际协议版本4(IPv4)
- 银行卡号校验位的LUHN算法模10“隔位2倍加”校验数的公式
- MySQL 5.5.x my.cnf参数配置优化详解
- BZOJ 4146 [AMPPZ2014] Divisors 解题报告
- BZOJ 4146 [AMPPZ2014] Divisors 解题报告
- sigaction实现信号处理并能成功read
- 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解
- sqlservice存储过程