关于2-SAT 问题给出的证明和思路就不再赘述
核心是对于问题给出的条件建图,然后跑tarjan缩点
(在一个强联通分量里bool值是相同的)
看集合两个元素是否在一个强联通分量来判断是否合法
利用强联通分量是拓扑序的逆序可以进行方案的选择
2-SAT 问题代码一般比较短,重点是建图
一般来说对于一对点(i,i+n)可以表示为一个集合里的两个点,或者一对矛盾的点
这样对于题目给出的关系就可以建图了
建图方法参见数学的充要条件