2013寒假练习 1047 Fibonacci Numbers
2013-02-16 19:08
344 查看
地址:http://acm.bit.edu.cn/mod/programming/view.php?id=698
求第n个斐波那契数mod p 的结果。矩阵快速幂入门题。
求第n个斐波那契数mod p 的结果。矩阵快速幂入门题。
#include<iostream> using namespace std; typedef struct MATRIX { __int64 a[2][2]; }matrix; matrix I; int n,p; matrix operator * (matrix x,matrix y) { matrix ans; for(int i=0;i<2;i++) { for(int j=0;j<2;j++) { ans.a[i][j]=(x.a[0][i]*y.a[j][0]%p+x.a[1][i]*y.a[j][1]%p)%p; } } return ans; } int main() { while(~scanf("%d%d",&n,&p)) { matrix I={1,1,1,0}; matrix t={1,0,0,1}; n--; while(n>1) { if(n%2) t=t*I; n/=2,I=I*I; } t=t*I; if(n+1) printf("%d\n",t.a[0][0]); else printf("0\n"); } return 0; }
相关文章推荐
- 2013寒假练习 1009:Number Sequence
- 2013寒假练习 1034:丈量土地
- 2013寒假练习 1038 Red and Black
- 2013寒假练习 1022 Mondriaan's Dream
- 2013寒假练习 1054 Largest prime factor
- BIT寒假练习-2013__1004:Who is the Smartest Man
- 2013寒假练习 1033 Squares
- 2013寒假练习 1005:穿越沙漠
- BIT寒假练习-2013__1006:The most frequent number
- 2013寒假练习 1039 Unit Fraction Partition
- 2013寒假练习 1003: Exchange for Cola(2/13更新)
- 2013寒假练习 1008:Putting Apples
- 2013寒假练习 1060 Is It A Tree?
- 2013 寒假练习 1048 n以内约数最多的数
- BIT寒假练习-2013__1007:Number Converter
- 2013寒假练习 1006:The most frequent number
- 2013寒假练习 1021:Pascal's Travels
- 2013寒假练习 1019 The Little Architect II
- 2013寒假练习 1051 Score
- BIT寒假练习-2013__1008:Putting Apples