(夏华献在学校也要做一次梦!)
把5的答案手动算出
会发现从学校开始,兔子的数量呈斐波那契数列(第2项开始)增长
假如现在有n盏路灯
那么睡觉的时间可以得到为
但是n有1e18大,明显使用标准数学公式不可行
所以,我们来找答案的规律叭
根据样例
in 4 out 12
in 6 out 48
又因为上面列出了in 5 out 24
可以很容易发现答案满足
快速幂即可
#include<iostream> #define mod 1000000007 using namespace std; typedef long long ll; ll qpow(ll a,ll n){ ll re=1; while(n){ if(n&1) re=(re*a)%mod; n>>=1; a=(a*a)%mod; } return re%mod; } int main(){ ll T,n; cin>>T; while(T--){ cin>>n; cout<<3*qpow(2,n-2)%mod<<endl; } return 0; }