2-SAT
\(2-SAT\)
形如 \(a\vee b\) 或 \(a\wedge b\) 的形式为 \(2-SAT\) 问题。
同理可定义 \(k-SAT\) 问题。
当 \(k>2\) 时为 \(NP\) 问题。
建模
\(2-SAT\) 的正确性建立在其命题与逆否命题同时成立。
原命题与逆否命题必须同时体现。
- \(a=1\),\(\neg a\to a\)
- \(a\vee b=1\),\(a=1\wedge b=1\)
- \(a\vee b=0\),\(a=1\Rightarrow b=0\),\(b=1\Rightarrow a=0\)
其他同理。
例题
前缀和优化建图
考虑每个点状态改为其前缀是否有修改,考虑相互限制即可。
CDQ/可持久化BIT优化建图
可持久化 \(BIT\) 注意将其与前版本连边,考虑好逆否。
\(3-SAT \ to \ 2-SAT\)
将每个 \(3-SAT\) 限制强制 \(ban\) 掉一个,跑 \(2^k\) 次 \(2-SAT\) 即可。