【题目大意】
n个布尔变量Xi,现在有m个约束条件,给出a op b = c,给出每个a b c 和 op。其中op可能是AND,OR,XOR。要求这n个布尔变量是否存在一组可能的取值,使得满足所有的约束条件。
【思路分析】
这题的构图的思路并不难,因为每个点就只有2种状态0或者1,所以构图就显得容易!我们设a为0,a'为1,b为0,b‘为1
那么根据3种操作符和c的值就可以构建下面这些边
AND c==1 a-->a' b-->b'这2条边表示a,b必须同时取1条件才成立
c==0 a'-->b b'-->a 第一条表示在a取1的情况下b必须取0,才能使a AND b为0,第2条边类推
OR c==1 a-->b' b-->a' 第一条边表示a取0的情况下b必须取1才能使结果为1,第2条边类推
c==0 a'-->a b'-->b 这2条边表示只有当a,b同时为0时条件才成立
XOR c==1 a-->b' a'-->b b-->a' b'-->a 表示只有a,b不同是条件才为1
c==0 a-->b a'-->b' b-->a b'-->a' 表示只有a,b相同时条件才为0
最后判断下相对2点是否在同一强连通分量重即可
【疑难解答】
(1)这题其他的构边都也许很好理解&