Quick pow for #737(div2) C. Moamen and XOR
Difference between en2 and en3, changed 563 character(s)
<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>
[submission:127000002]

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en3 English zzxdd 2021-08-26 07:50:37 563
en2 English zzxdd 2021-08-26 07:46:25 15
en1 English zzxdd 2021-08-26 07:45:11 598 Initial revision (published)