主要是公式的推导和快速幂的使用,弹了一次,因为交大出的那本SCL快速幂的模板有点小错误
#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
long long pow_mod(long long a,long long i,long long n){
if(i == 0) return 1%n;
long long tmp = pow_mod(a,i>>1,n);//书上tmp的类型为int
tmp = tmp*tmp%n;
if(i&1) tmp = (long long) tmp*a%n;
return tmp;
}
int main(){
int ncase,T=1;
cin >> ncase;
while(ncase--){
long long l;
scanf("%lld",&l);
long long ans = (l*pow_mod(2,l-1,1000000007))%1000000007;
cout<<"Case #"<<T++<<": "<<ans<<endl;
}
return 0;
}