Quick pow for #737(div2) C. Moamen and XOR

Правка en1, от zzxdd, 2021-08-26 07:45:11

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

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en3 Английский zzxdd 2021-08-26 07:50:37 563
en2 Английский zzxdd 2021-08-26 07:46:25 15
en1 Английский zzxdd 2021-08-26 07:45:11 598 Initial revision (published)