41234Sample Output0137思路:(1):集合各子集中,各数字之和为偶数的非空子集个数为2的n-1次方-1;那么,和为奇数的非空子集个数为2的n-1次方。(2):最后要对一个数求余,用到同余定理,(a+b)%C=(a%c+b%c)%c。(3):2的n-1次方对一个数取余,用到快速幂。#include<cstdio>#define mod 1000000007typedef long long LL;LL Quick_MI(LL a,LL b,LL c){ int s=1; while(b) { a=a%c; if(b&1) //按位与运算,二进制形式,判断b的奇偶 { s=(s*a)%c; } a=(a*a)%c; b=b/2; } return s; //快速幂}int main(){ int T; long long p,m,n; scanf("%d",&T); while(T--) { scanf("%lld",&n); p=Quick_MI(2,n-1,mod); m=(p-1)%mod; //同余定理 PRintf("%lld/n",m); } return 0;}
新闻热点
疑难解答