2-sat
对于每个限制条件只包含两个变量的,称为2-sat
建边方式
首先拆点,把每个命题分为 \(true\) 与 \(false\)
在图上用点之间的可达性表示命题之间的蕴含关系
对于 \(x_i=1\) 的限制,等价于 \(x_i \neq 0\),让 \(x_i=0\) 的情况推出 \(x_i=1\) ,让\(\neg i\)向 \(i\)连一条边
对于 \(x \lor y=1\)的限制,那么 \(x=0 \Longrightarrow y=1\) 让 \(\neg x\)向 \(y\) 连边
对于 \(x \land y=0\) 的限制,那么 \(x=1 \Longrightarrow y=0\) 让 \(x\)向 \(\neg y\)连边
如果 \(x\)与 \(\neg x\) 在同一个强连通分量里,就说明无解,否则取拓扑序较大者的命题为真(即所在\(scc\)编号较小者)
这样只满足了单个命题的限制,那么有没有可能取两个拓扑序较大的命题之间有矛盾,即 \(x\)是否会得到 \(\neg y\) 呢
答案是不会的,\(d_{\neg x} < d_x,d_{\neg y}<d_y\),假设有 \(d_x<d_{\neg y}\),那么由对称性可得\(d_y<d_{\neg x}\),得到 \(d_x<d_{\neg y}<d_y<d_{\neg x}<d_x\) 矛盾,证毕
建图优化方式
有线段树等数据结构优化建图,也可以用\(CDQ\)分治优化建图,如果是向一个前缀或后缀连边的话,可以前缀优化建图
korasaju
(补)
posted on 2025-07-18 21:54 Pearblossom 阅读(14) 评论(2) 收藏 举报