省选基础图论 2-SAT超详细讲解 【Luogu P4171 [JSOI2010] 满汉全席】

本文详细介绍了2-SAT问题的概念、定义及现实应用场景,并提供了基于Tarjan算法的解决方案。此外,还介绍了暴力搜索方法,并通过具体例题展示了如何实现2-SAT问题的求解。

2-SAT详解

SAT 是适定性(Satisfiability)问题的简称。一般形式为 k - 适定性问题,简称 k-SAT。而当 k > 2 k>2 k>2 时该问题为 NP 完全的。所以我们只研究 k = 2 k=2 k=2 的情况。

定义

2-SAT,简单的说就是给出 n n n 个集合,每个集合有两个元素,已知若干个 < a , b > <a,b> <a,b>,表示 a a a b b b 矛盾(其中 a a a b b b 属于不同的集合)。然后从每个集合选择一个元素,判断能否一共选 n n n 个两两不矛盾的元素。显然可能有多种选择方案,一般题中只需要求出一种即可。

现实意义

比如邀请人来吃喜酒,夫妻二人必须去一个,然而某些人之间有矛盾(比如 A 先生与 B 女士有矛盾,C 女士不想和 D 先生在一起),那么我们要确定能否避免来人之间没有矛盾,有时需要方案。这是一类生活中常见的问题。

使用布尔方程表示上述问题。设 a a a 表示 A 先生去参加,那么 B 女士就不能参加( ¬ a \neg a ¬a); b b b 表示 C 女士参加,那么 ¬ b \neg b ¬b 也一定成立(D 先生不参加)。总结一下,即 ( a ∨ b ) (a \vee b) (ab)(变量 a , b a, b a,b 至少满足一个)。对这些变量关系建有向图,则有: ¬ a → b ∧ ¬ b → a \neg a\to b\wedge\neg b\to a ¬ab¬ba a a a 不成立则 b b b 一定成立;同理, b b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvshu · 绿树

非常感谢您的搭讪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值