2−SAT 问题
\color{blue}\texttt{2-SAT}
2−SAT,即布尔方程在两元限制下的求合法解问题。
一般模型
每个单位有非 a 即 b 的两种取值,而有些单位之间有取值的制约关系。要求给出一组合法解。
做法
制约关系间建图。如果图上一个节点
一般的方法是:若单位
很显然,对于每个强联通分量,要么都取,要么都不取。于是我们求强联通分量即可。
解的存在性
如果同一个单位的两个取值在同一个强联通分量内,一定无解。否则一定有解。
输出方案
唯一可能存在的冲突在于,如果同一个单位的点
如果强联通分量的编号小,意味着它先出栈,离根节点的距离远,拓扑序上靠后。所以对于每个
\color{blue}\texttt{k-SAT}
对于