首页 > 其他 > 详细

P4910 帕秋莉的手环

时间:2021-05-03 22:22:31      阅读:76      评论:0      收藏:0      [点我收藏+]

by luogu

技术分享图片

我们将它用dp的思想来推一下

技术分享图片

再进一步思考

可以发现

斐波那契!

再利用上矩阵递推

(我打印出来了1~12的ans、并找到了规律

 1 #include<bits/stdc++.h>
 2 
 3 
 4 #define M 1000000007
 5 #define int long long 
 6 using namespace std;
 7 
 8 
 9 long long jz[3][3],tmp[3][3],ans[3],base[3][3];
10 long long n;
11 void zc()
12 {
13     tmp[0][0]=base[0][0];
14     tmp[0][1]=base[0][1];
15     tmp[1][0]=base[1][0];
16     tmp[1][1]=base[1][1];
17     base[0][0]=(tmp[0][0]*tmp[0][0]+tmp[0][1]*tmp[1][0])%M;
18     base[0][1]=(tmp[0][0]*tmp[0][1]+tmp[0][1]*tmp[1][1])%M;
19     base[1][0]=(tmp[1][0]*tmp[0][0]+tmp[1][1]*tmp[1][0])%M;
20     base[1][1]=(tmp[1][0]*tmp[0][1]+tmp[1][1]*tmp[1][1])%M;
21     
22     return ;
23 }
24 void jc()
25 {
26     tmp[0][0]=jz[0][0];
27     tmp[0][1]=jz[0][1];
28     tmp[1][0]=jz[1][0];
29     tmp[1][1]=jz[1][1];
30     jz[0][0]=(tmp[0][0]*base[0][0]+tmp[0][1]*base[1][0])%M;
31     jz[0][1]=(tmp[0][0]*base[0][1]+tmp[0][1]*base[1][1])%M;
32     jz[1][0]=(tmp[1][0]*base[0][0]+tmp[1][1]*base[1][0])%M;
33     jz[1][1]=(tmp[1][0]*base[0][1]+tmp[1][1]*base[1][1])%M;
34 
35 return ;
36 }
37 void ksm()
38 {
39     long long t=n;
40     while(t>0)
41     {
42         if (t&1) 
43         {
44             jc();
45         }
46         zc();
47         t>>=1;
48     }
49 
50 return ;
51 }
52 //1,3,4,7,11,18,29,47,76,123,199,322
53 //1,2,3,4,5 ,6 , 7 ,8 ,9 ,10 ,11 ,12
54 signed main()
55 {
56     ios::sync_with_stdio(false);
57     
58     int T;
59     cin>>T;
60     jz[0][0]=1;
61     jz[1][1]=1;jz[1][0]=jz[0][1]=0;
62     base[0][0]=base[0][1]=base[1][0]=1;base[1][1]=0;
63     ans[0]=ans[1]=1;
64     while(T--)
65     {
66  jz[0][0]=1;
67     jz[1][1]=1;jz[1][0]=jz[0][1]=0;
68     base[0][0]=base[0][1]=base[1][0]=1;base[1][1]=0;
69     ans[0]=ans[1]=1;
70     
71     cin>>n;
72     n--;
73     ksm();
74     cout<<(jz[0][0]+jz[0][1]+jz[0][1])%M<<endl;
75       }  
76       
77       return 0;
78 } 

 

技术分享图片帕秋莉!

 

P4910 帕秋莉的手环

原文:https://www.cnblogs.com/Hehe-0/p/14727877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!