# Key Set

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)
Total Submission(s): 1886    Accepted Submission(s): 990

Problem Description
soda has a set S with n integers {1,2,,n}. A set is called key set if the sum of integers in the set is an even number. He wants to know how many nonempty subsets of S are key set.

Input
There are multiple test cases. The first line of input contains an integer T (1T105), indicating the number of test cases. For each test case:

The first line contains an integer n (1n109), the number of integers in the set.

Output
For each test case, output the number of key sets modulo 1000000007.

Sample Input
4 1 2 3 4

Sample Output
0 1 3 7

Author
zimpha@zju

Source

Recommend
wange2014

## AC代码：

#include <iostream>
#include <cstdio>
using namespace std;
const int mod=1000000007;
typedef long long LL;
LL quick_mod(int a,int b)
{
// a^b%mod
LL ans=1;
LL t=a%mod;
while(b)
{
if(b&1)
ans=ans*t%mod;
t=t*t%mod;
b>>=1;
}
return ans;
}
int main()
{
int T;
cin>>T;
LL n;
while(T--)
{
cin>>n;
cout<<quick_mod(2,n-1)-1<<endl;
}
return 0;
}