会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员后可解锁完整内容。
解题思路
老小区有 n 盏灯、每盏灯各有一个开关;按下第 i 个开关会翻转第 i 盏灯,同时还会额外翻转若干盏灯(给出影响关系)。已知初始状态 a[i]∈{0,1}(0 关、1 开),问是否存在一组开关使所有灯都为 0;若存在,输出按下的开关编号(升序),并在多解中选择
- 开关数量最少;2) 数量相同则字典序(从小到大序列的字典序)最小。
算法选择:位运算状态压缩 + 子集枚举
- 将每个开关的作用用一个
n 位的位掩码表示:effect[i] 的第 j 位为 1 表示按下 i 会翻转第 j 盏灯。注意第 i 位始终为 1(会翻转自身)。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写