位运算

来源:互联网 发布:西洋古玩软件 编辑:程序博客网 时间:2024/06/05 10:56

举例:

for(int mm = 0;mm<(1<<n);mm++)

{
if(__builtin_popcount(mm)>1)
{

int maxn = -10000;
int minn = 10000;
int tot = 0;
for(int i=0;i<n;i++)
{
if((1<<i)&mm)
{
maxn = max(maxn,num[i]);
minn = min(minn,num[i]);
tot += num[i];
}

}

(__builtin_popcount(mm)>1) 用来计算二进制中1 的个数

if((1<<i)&mm) 要遍历里面的1,一定要用这种形式~

0 0
原创粉丝点击