码迷,mamicode.com
首页 > 其他好文 > 详细

二进制枚举子集技巧

时间:2018-08-04 18:52:04      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:集合   保存   遍历   amp   二进制   for   lin   枚举   解释   

提供一个神奇的姿势

\(for(int \ i=sta;i;i=i-1\&sta)\)

稍微解释一下了,\(sta\)保存的0,1即为原来的需要求子集的集合,\(i\)即为遍历的子集

我们取的子集即是把当前集的元素取或不取,即\(sta\)的1取或不取

我们减去1,即是把最后一位的1变成0,最后一个1后面的0全变1,和原来的&一下,变的1全回去了,也把最后一位搞成0了

剩下的以此类推就差不多了

二进制枚举子集技巧

标签:集合   保存   遍历   amp   二进制   for   lin   枚举   解释   

原文地址:https://www.cnblogs.com/ppprseter/p/9419344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!