枚举一个二进制集合的子集,可以看做原集合忽略0之后不断-1
就有了这样一种算法:
for (int i = s; i; i = (i - 1) &s)
i - 1使得末尾的0全部变成1,但是由于&s,原来是0的位无论如何也不会变成1,但是原来是1的位就形成了不断-1的模式
枚举一个二进制集合的子集,可以看做原集合忽略0之后不断-1
就有了这样一种算法:
for (int i = s; i; i = (i - 1) &s)
i - 1使得末尾的0全部变成1,但是由于&s,原来是0的位无论如何也不会变成1,但是原来是1的位就形成了不断-1的模式
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。