二进制枚举 即用十进制连续数枚举状态
O(1<<n);
对于需枚举状态判断的题目(暴力杯)是刷分利器
在此复习一下
for(int i = 0; i < 1 << n; i++) //枚举范围 i << n
{
int x = i;
//memset(dglit, 0, sizeof(dglit)); 看写法清空
for(int j = 1; j <= n; j++)
{
dglit[j] = (x & 1); //相当于覆盖计算 无需清空
x >>= 1;
}
for(int j = 1; j <= n; j++) //枚举位置状态进行操作判断
{
if(!judge(j))
}
}
二进制枚举技巧详解

本文详细介绍了二进制枚举的原理及应用,通过使用十进制数表示二进制状态,实现高效的状态遍历。适用于需枚举状态判断的题目,如暴力搜索问题。文中提供了一个具体的循环结构示例,展示了如何利用位运算实现状态的快速枚举。
1791

被折叠的 条评论
为什么被折叠?



