2-sat思想及入门

什么是2-sat

要知道2-sat是什么,我们先要知道什么是适定性(Satisfiability)问题,适,就是合适,定,就是确定,适定性问题通俗的说就是确定是否可以满足所有的条件?或者说就是确定一个满足所有条件的方案。取英文的前三个字母,简称sat问题。

通俗的sat问题表述一般是这样的:

有很多个集合,每个集合里面有若干元素,现给出一些取元素的规则,要你判断是否可行,可行则给出一个可行方案。如果所有集合中,元素个数最多的集合有k个,那么我们就说这是一个k-sat问题,同理,2-sat问题就是k=2时的情况。(摘自jarjingx的博客

总结一下,2-sat差不多就是有若干个元素,每个元素有两个可选的权值,但只能选一个。不同元素间还有对应关系,即若一个元素选择一个权值,那么另一个元素也必须选择其中的一个权值,或者另一个元素选其中的一个权值。如果还是看不懂,那么通过一个例题就会懂了。

例题

洛谷P4782 【模板】2-SAT 问题
n n n个布尔变量 x 1   x n x1~xn x1 xn,另有 m m m个需要满足的条件,每个条件的形式都是“ x i xi xi t r u e / f a l s e true/false true/false x j xj xj t r u e / f a l s e true/false true/false”。比如“ x 1 x1 x1为真或 x 3 x3 x3为假”、“ x 7 x7 x7为假或 x 2 x2 x2为假”。2-SAT 问题的目标是给每个变量赋值使得所有条件得到满足。

输入格式:
第一行两个整数 n n n m m m,意义如体面所述。
接下来 m m m行每行4个整数 i , a , j , b i ,a, j, b i,a,j,b,表示“ x i xi xi a a a x j xj xj b b b ( a , b ∈ 0 , 1 ) (a,b∈{0,1}) (a,b

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值