码迷,mamicode.com
首页 > 其他好文 > 详细

poj 3070 Fibonacci

时间:2014-06-02 19:07:56      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   a   

http://poj.org/problem?id=3070

矩阵的快速幂,二分

bubuko.com,布布扣
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <algorithm>
 4 #define maxn 10000
 5 using namespace std;
 6 const int mod=10000;
 7 
 8 int n;
 9 struct node
10 {
11     int a[4][4];
12 };
13 
14 node multi(node s,node t)
15 {
16     node c;
17     for(int i=0; i<2; i++)
18     {
19         for(int j=0; j<2; j++)
20         {
21             c.a[i][j]=0;
22             for(int k=0; k<2; k++)
23             {
24                 c.a[i][j]=(c.a[i][j]+s.a[i][k]*t.a[k][j])%mod;
25             }
26         }
27     }
28     return c;
29 }
30 
31 
32 int main()
33 {
34     while(scanf("%d",&n)!=EOF)
35     {
36         if(n==-1) break;
37         node m,x;
38         m.a[0][0]=1; m.a[0][1]=0;
39         m.a[1][0]=0; m.a[1][1]=1;
40         x.a[0][0]=x.a[0][1]=x.a[1][0]=1;
41         x.a[1][1]=0;;
42         while(n)
43         {
44             if(n&1)
45             {
46                 m=multi(m,x);
47             }
48             x=multi(x,x);
49             n>>=1;
50         }
51         printf("%d\n",m.a[0][1]);
52     }
53     return 0;
54 }
View Code

 

poj 3070 Fibonacci,布布扣,bubuko.com

poj 3070 Fibonacci

标签:c   style   class   blog   code   a   

原文地址:http://www.cnblogs.com/fanminghui/p/3764344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!