枚举子集

10 分钟

用二进制位表示集合,第 i 位为 1 表示选了第 i 个元素。枚举一个集合 m 的所有非空子集:for(int s=m; s; s=(s-1)&m),s 会不重不漏地取遍每个子集。

小纸条

集合 m=3(11) 有几个非空子集?

登录 后可看答案

枚举子集 · 算法进阶 · op599 课程