题目大意:
在一些有依赖关系的灯里(即改了这个,那个也改了),要通过改变若干灯的状态来从初始状态达到目标状态,每个灯最多改变一次,方案总数。
分析:
由于每个灯只能改1次,那么最终的状态就只与跟这个灯相关的灯的改变情况有关,容易想到设立方程组来对问题求解。至于解方程组,高斯大牛已经帮咱们铺平了道路了,在此对他表示崇高的敬意。
算法:
用0表示i号灯不改,1表示改,那么对于每个灯把跟它相关(包括自己)的所有灯的改变情况xor起来,就是最终的改变情况,而最终改变情况可以由初末状态得到,再用高斯消元解这个方程组,最后答案如果不是无解就是2^不定元个数。
代码: