分析:给你一个元素为1到n的集合,让你求有多少个非空子集,子集内的元素之和为偶数。容易推出:ans=2^(n-1)-1,因为n过大,所有用快速幂来求。
# include <stdio.h>
__int64 FastExp(__int64 a,__int64 b)
{
__int64 ans=1;
while(b)
{
if(b&1)
ans=ans*a%1000000007;
a=a*a%1000000007;
b>>=1;
}
return ans;
}
int main()
{
int n,t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
printf("%I64d\n",FastExp(2,n-1)-1);
}
return 0;
}