<pre>↵
#include <bits/stdc++.h>↵
using namespace std;↵
long long t,n,k,ans,lg,eq;↵
const long long p=1000000007;↵
long long poww(long long a,long long x,long long mod){↵
long long ans=1,base=a;↵
while(x>0){↵
if(x%2==1)↵
ans=(ans*base)%mod;↵
base=(base*base)%mod;↵
x/=2;↵
}↵
return ans;↵
}↵
int main()↵
{↵
cin>>t;↵
while(t--){↵
cin>>n>>k;↵
lg=0;↵
eq=1;↵
for(int i=1;i<=k;i++){↵
lg=(lg*poww(2,n,p)%p+eq*((n+1)%2))%p;↵
eq=eq*(p+poww(2,n-1,p)+(n%2?1:-1))%p;↵
}↵
ans=(lg+eq)%p;↵
cout<<ans<<endl; ↵
}↵
return 0;↵
}↵
</pre>
#include <bits/stdc++.h>↵
using namespace std;↵
long long t,n,k,ans,lg,eq;↵
const long long p=1000000007;↵
long long poww(long long a,long long x,long long mod){↵
long long ans=1,base=a;↵
while(x>0){↵
if(x%2==1)↵
ans=(ans*base)%mod;↵
base=(base*base)%mod;↵
x/=2;↵
}↵
return ans;↵
}↵
int main()↵
{↵
cin>>t;↵
while(t--){↵
cin>>n>>k;↵
lg=0;↵
eq=1;↵
for(int i=1;i<=k;i++){↵
lg=(lg*poww(2,n,p)%p+eq*((n+1)%2))%p;↵
eq=eq*(p+poww(2,n-1,p)+(n%2?1:-1))%p;↵
}↵
ans=(lg+eq)%p;↵
cout<<ans<<endl; ↵
}↵
return 0;↵
}↵
</pre>



