2SAT总结

做完了POJ的6道2SAT,总结一下

2SAT算法流程

     1.构图

     2.求SCC

     3.判断有无解

     4.缩点反向建图

     5.拓扑排序

     6.染色并输出


构图模型:

    模型一:两者(A,B)不能同时取
      那么选择了A就只能选择B’,选择了B就只能选择A’
      连边A→B’,B→A’
    模型二:两者(A,B)不能同时不取
      那么选择了A’就只能选择B,选择了B’就只能选择A
      连边A’→B,B’→A
    模型三:两者(A,B)要么都取,要么都不取
      那么选择了A,就只能选择B,选择了B就只能选择A,选择了A’就只能选择B’        ,选择了B’就只能选择A’
      连边A→B,B→A,A’→B’,B’→A’
    模型四:两者(A,A’)必取A
      连边A’→A

    例子:poj2749:奶牛有矛盾,这个矛盾是对true 和 false都有影响,即(A,B)不能同时取,(A',B')不能同时取,两个模型一;喜欢即模型三;根据距离建边则是模型一

          poj2723:钥匙不能同时取,模型一;打开门,模型二

          poj3648:太鬼畜,下一个

          poj3678: 经典;AND为1,必须取两个true,所以A->B ,B->A,A'->A,B->B';  AND为0,模型一; OR为1,模型二;  OR为0,与AND1类似; XOR类似模型三

         





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值