#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e6+10;
const int mod=1e9+7;
int dp[maxn][3];
int quick(int a,int n)
{
    int ans=1;
    int x=a;
    while(n!=0)
    {
        if(n%2==1) {ans=ans%mod*x%mod; n--; }
        else       { x=x%mod*x%mod;n=n/2;  }
    }
    return ans%mod;
}
int32_t main()
{
    int T; cin>>T;
    while(T--)
    {
        memset(dp,0,sizeof(dp));
        int n,k; cin>>n>>k;
        k=quick(2,k);
        dp[1][0]=k%mod;//  1
        dp[1][1]=0;// qi ta
        dp[1][2]=0;// bu neng de
        for(int i=2;i<=n;i++)
        {
            dp[i][0]=dp[i-1][0]%mod+dp[i-1][1]%mod;
            dp[i][1]=dp[i-1][0]*(k-2)+dp[i-1][1]*(k-3)%mod+dp[i-1][2]*(k-2)%mod;
            dp[i][2]=dp[i-1][2]%mod+dp[i-1][1]%mod;
            dp[i][0]=dp[i][0]%mod;
            dp[i][1]=dp[i][1]%mod;
            dp[i][2]=dp[i][2]%mod;
           // cout<<dp[i][0]<<"  "<<dp[i][1]<<"  "<<dp[i][2]<<endl;
        }
        cout<<(dp[n][0]+dp[n][1])%mod<<endl;
    }
}
A.cpp

相关文章:

  • 2018-09-10
  • 2021-08-18
  • 2021-08-22
  • 2021-12-04
  • 2022-12-23
  • 2021-12-10
  • 2021-05-12
  • 2022-12-23
猜你喜欢
  • 2021-12-16
  • 2021-07-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案