老小区有 n 盏灯、每盏灯各有一个开关;按下第 i 个开关会翻转第 i 盏灯,同时还会额外翻转若干盏灯(给出影响关系)。已知初始状态 a[i]∈{0,1}(0 关、1 开),问是否存在一组开关使所有灯都为 0;若存在,输出按下的开关编号(升序),并在多解中选择
n 位的位掩码表示:effect[i] 的第 j 位为 1 表示按下 i 会翻转第 j 盏灯。注意第 i 位始终为 1(会翻转自身)。老旧小区需要关闭一排灯,由于接线混乱,按某个灯的开关时可能会同步影响多个灯的状态,被影响的灯的状态会发生反转,即:原先亮着的灯会关闭,而关的灯会打开。
已知第 i 个开关除了改变 i 号灯的状态之外,还会额外影响多个灯的状态;
请问是否存在方案使得所有的灯都关闭,如果无解则输出 −1 ,有解时则输出选择按开关数量最小的方案,如果按开关数量相同再比较输出字典序最小的方案。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写