第14次课:枚举法(子集枚举)

潘CSP100班

2024-05-18 13:56:45
2024-05-29 21:56:45

信息与公告

枚举从n个元素中选任意个元素的所有方案(共 2^n 种)

for (int i = 0; i < (1<<n); i++)      // i从0枚举到2^n-1,这里(1<<n)表示 2^n。(如果不输出空集,则i从1开始)
{                            
	bitset<30> b(i);   // 将i转换为二进制数b,即0…0到1…1 
	for (int j=0; j<n; j++)    // 找出b中所有的1,表示a中对应元素被选入
	{
		if (b[j]==1)  // b的第j位为1,表示a的第j个元素被选入
		{
			……
		}
	}
}