2-sat总结

转自:http://www.cnblogs.com/-sunshine/archive/2012/11/03/2752824.html

2-SAT问题 :N个集合,每个集合中有两个元素xi,yi,选且只选一个元素。



不同集合间的元素可能不能同时被选中。 然后或者判定是否存在可行解,或者存在的话,求出一组可行解。


k-SAT(k>=3)的话,就是NP问题了。
还是很容易想到建图上去的。元素作为点,如果选择元素a,必须选择元素b的话,就连一条有向边。


那么一个强连通分量里面就是,如果选择其中任何一个点,那么其余的点,一定也要被选择。 


这样的话,如果N个集合中存在集合中元素xi,yi在同一强连通分量中,那么一定无解。


否则的话,一定能找出一组可行解。
对于求强连通分量,建议用Kosaraju 算法,因为我们找出一组可行解的时候,需要拓扑排序一下。


而Kosaraju算法有一个隐藏的性质就是,求出的强连通分量就已经是拓扑排序后的。


具体的求法及证明请参看国家集训队论文 伍昱的<<由对称性解2-SAT问题>>,赵爽的<<2-SAT解法浅析>>
几个简单题解:


①基本2-SAT 


poj 3207 Ikki’s story http://acm.pku.edu.cn/JudgeOnline/problem?id=3207 


poj 3678 Katu Puzzle http://acm.pku.edu.cn/JudgeOnline/problem?id=3678 建图,用2-SAT 来判定是否存在可行解。
②二分+2-SAT判定 


poj 2723 Get Luffy out http://acm.pku.edu.cn/JudgeOnline/problem?id=2723 


poj 2749 Bulid roads http://acm.pku.edu.cn/JudgeOnline/problem?id=2749 


poj 2296 Map Labeler http://acm.pku.edu.cn/JudgeOnline/problem?id=2296 


hdu 3622 Bomb Game http://acm.hdu.edu.cn/showproblem.php?pid=3622 二分答案,用2-SAT来验证该解是否合法
③求出一组可行解 


poj 3683 Priest John’s Busiest Day http://acm.pku.edu.cn/JudgeOnline/problem?id=3683 


poj 3648 Wedding http://acm.pku.edu.cn/JudgeOnline/problem?id=3648 


hit 1917 Peacefull Commission http://acm.hit.edu.cn/judge/show.php?Contestid=0&Proid=1917 


hdu 1814 Peacefull Commission (推荐) http://acm.hdu.edu.cn/showproblem.php?pid=1814 


前3个都是SPJ,求出任意一组解就可以了。就可以用论文中染色的方法解决。 by the way , poj 3468 题目描述很YD。 


而hdu 1814 是求出一组字典序最小的解。 我们可以在求出SCC后,枚举每个点先选较小那个,并对所在的SCC染色。看是否有矛盾。


如果矛盾,就一定是另一个。依次染色求解,如果已经该点所在SCC已经染色就跳过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值