ZJNU 2342 - 夏华献要回家
作者:互联网
(夏华献在学校也要做一次梦!)
把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 }
标签:12,2342,ll,long,夏华献要,re,ZJNU,out,mod 来源: https://www.cnblogs.com/stelayuri/p/12238875.html