首页 > 其他 > 详细

ZJNU 2342 - 夏华献要回家

时间:2020-01-28 21:25:07      阅读:70      评论:0      收藏:0      [点我收藏+]

(夏华献在学校也要做一次梦!)

把5的答案手动算出

技术分享图片

会发现从学校开始,兔子的数量呈斐波那契数列(第2项开始)增长

假如现在有n盏路灯

那么睡觉的时间可以得到为

技术分享图片

 

但是n有1e18大,明显使用标准数学公式不可行

所以,我们来找答案的规律叭

根据样例

in 4 out 12

in 6 out 48

又因为上面列出了in 5 out 24

可以很容易发现答案满足

技术分享图片

 

快速幂即可

 1 #include<iostream>
 2 #define mod 1000000007
 3 using namespace std;
 4 typedef long long ll;
 5 ll qpow(ll a,ll n){
 6     ll re=1;
 7     while(n){
 8         if(n&1)
 9             re=(re*a)%mod;
10         n>>=1;
11         a=(a*a)%mod;
12     }
13     return re%mod;
14 }
15 int main(){
16     ll T,n;
17     cin>>T;
18     while(T--){
19         cin>>n;
20         cout<<3*qpow(2,n-2)%mod<<endl;
21     }
22     
23     return 0;
24 }

 

ZJNU 2342 - 夏华献要回家

原文:https://www.cnblogs.com/stelayuri/p/12238875.html

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