简单的求子集和的4种做法: for(int i=0;i<(1<<n);i++) for(int j=0;j<i;j++) if(j&i==j)F[i]+=A[j]; for(int i=0;i<(1<<n);i++) { F[i]=A[0]; for(int j=i;j>0;j=(j-1)&i) F[i]+=A[j]; },这一做法用到了高位前缀和 for(int i=0;i<n;i++) for(int j=0;j<(1<<n);j++) ...