2-sat

摘自http://blog.csdn.net/qq_24451605/article/details/47126143

1.我们利用一条有向边<i,j>,来表示选i的情况下,一定要选j;

2.用i表示某个点是true,那么i'表示某个点是false

3.因为限制的两两之间的关系,所以我们可以通过逻辑关系来建边:

          1)如果给出A和B的限制关系,A和B必须一起选,(A and B)||(!A and !B )==true 那么选A必须选B,建边<i,j>和<j,i>还有<i',j'>和<j',i'>

          2)如果给出A和B的限制关系,选A不能选B,那么(A && !B)||(!A && B )==true,建边<i,j'>和<j,i'>

          3)如果必须选A,那么A==true,建边<i',i>

          4)如果A一定不能选,那么!A==true.建边<i,i'>

原文地址:https://www.cnblogs.com/yinwuxiao/p/8485645.html