2-sat系列(二) POJ 3678 Katu Puzzle

本文介绍了2-SAT问题,并通过POJ 3678 Katu Puzzle题目进行讲解。文章详细阐述了如何根据布尔变量的AND、OR、XOR约束条件构建图,并分析了错误的构图方法。重点讨论了AND和OR条件下的边构造,强调了为何a-->a'表示a必须为1,b-->b'表示b必须为1的原因。最后,说明了通过判断强连通分量来确定问题是否有解的方法。
摘要由CSDN通过智能技术生成

【题目大意】

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)这题其他的构边都也许很好理解&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值