[图论] 2-sat 入门


ps.写topsort输出解的时候各种混乱。还是没理解透。写点东西理清思路先。_10_28


2-sat 就是n个元素,可取0或1(2的含义),然后加上一些附加条件。问题的解为n个元素的取值。

感觉就是离散数学里面的数理逻辑什么的,一堆0、1。

问题的做法是通过建图来解。

一般将n个元素拆点为2*n个点,表示取0或取1。

然后,根据条件连边,边u->v表示,u发生,v一定发生。(这不就是数理逻辑里的那什么条件运算吗....)

所以,若至少存在一组解,则元素 i 取0的点和 i 取1的点不能在一个强连通分支(SCC)里。所以这里就要用到tarjin。(还有另外一个神马的算法忘了...)

可以证明不存在上述情况的话,可行解是一定存在的。

如果要求出一组可行解,就要 缩点建反向图,topsort并选择删除

转载于:https://www.cnblogs.com/tclh123/archive/2011/10/28/2587052.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值