首页 > 其他 > 详细

枚举子集

时间:2021-03-27 18:37:02      阅读:14      评论:0      收藏:0      [点我收藏+]

背景:

二进制常常用来表示状态,倘若要对某种状态枚举它的子集,却不知如何处理
例如:10001001 -> 10000001 即为前者子集中的元素

下面提供一种巧妙的写法:

for(int i=0;i<(1<<n);i++)
  for(int j=i;j>=0;j=i&(j-1)){
  	//i为状态 - j为i的子集 
  }

枚举子集

原文:https://www.cnblogs.com/Camille-Ferros/p/14586123.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!