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

把5的答案手动算出

ZJNU 2342 - 夏华献要回家

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

假如现在有n盏路灯

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

ZJNU 2342 - 夏华献要回家

 

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

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

根据样例

in 4 out 12

in 6 out 48

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

可以很容易发现答案满足

ZJNU 2342 - 夏华献要回家

 

快速幂即可

#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;
}

 

相关文章:

  • 2021-07-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-29
  • 2022-12-23
  • 2022-01-14
猜你喜欢
  • 2022-12-23
  • 2021-11-25
  • 2021-09-01
  • 2021-10-23
  • 2021-08-30
  • 2021-10-06
  • 2021-12-09
相关资源
相似解决方案