2-SAT 学习笔记
对于若 \(A\) 则 \(B\),连边 \(A\to B\)。
故可推出:
\(A\) 一定成立,连边 \(\neg A\to A\)。
\(A\) 一定不成立,连边 \(A\to \neg A\)。
\(A\) 或 \(B\),连边 \(\neg A\to B,\neg B\to A\)。
\(A\) 且 \(B\),即 \(A\) 一定成立、 \(B\) 一定成立。
\(A\) 异或 \(B\),连边 \(A\to \neg B,\neg A\to B,B\to\neg A,\neg A\to B\)。
云云……
然后跑一次 Tarjan,如果 \(col_A=col_{\neg A}\) 则无解。
如果有解,\(col_A>col{\neg A}\) 则 \(A\) 为真,否则为假。