看题解系列
首先是异或差分(其实我也不知道叫什么)
定义f 为异或数组
表示 与 是否相同
f 数组中至多有 个 1 ,且肯定是偶数个
当f 数组全部为0 时,灯全部点亮
对于一段连续序列进行翻转,显然只需要修改,
这个操作等价于对某个元素进行移动
当两个1 相遇时会消除
于是问题等价于求所有1 消除的代价
对于任意两个1 消除的代价,可用完全背包求
将长度为len 的操作看成len 和-len 两种
最后状压所有1
乍一看枚举i ,j 复杂度
但实际上其中一个并不用枚举,确定任意一个i 之后枚举j 即可
因此复杂度
