子集生成(位运算版本)
生成子集
将是否选取记为0/1,那么组合的方案可以转化为一个二进制数
共有2^n个方案数
for(int i=0;i<(1<<n);i++){//i代表选取的方案
//初始化
for(int k=0;k<n;k++){//(1<<k从右往左匹配)
if(i&(1<<k)){//选到第n-k个数,(从1开始的序列)
//做运算
}
}
//更新答案
}
生成子集
将是否选取记为0/1,那么组合的方案可以转化为一个二进制数
共有2^n个方案数
for(int i=0;i<(1<<n);i++){//i代表选取的方案
//初始化
for(int k=0;k<n;k++){//(1<<k从右往左匹配)
if(i&(1<<k)){//选到第n-k个数,(从1开始的序列)
//做运算
}
}
//更新答案
}