OSDN Git Service

Update 2-sat.md
authorlazycccat <73925722+lazycccat@users.noreply.github.com>
Wed, 4 Nov 2020 05:12:51 +0000 (13:12 +0800)
committerGitHub <noreply@github.com>
Wed, 4 Nov 2020 05:12:51 +0000 (13:12 +0800)
docs/graph/2-sat.md

index ec0eddf..dfcbe52 100644 (file)
@@ -16,7 +16,7 @@
 
 算法考究在建图这点,我们举个例子来讲:
 
\81\87设æ\9c\89 ${a1,a2}$ å\92\8c ${b1,b2}$ ä¸¤å¯¹ï¼\8cå·²ç\9f¥ $a1$ å\92\8c $b2$ é\97´æ\9c\89ç\9f\9bç\9b¾ï¼\8cäº\8eæ\98¯ä¸ºäº\86æ\96¹æ¡\88è\87ªæ´½ï¼\8cç\94±äº\8e两è\80\85中å¿\85é¡»é\80\89ä¸\80个ï¼\8cæ\89\80以æ\88\91们就è¦\81æ\8b\89两æ\9d¡æ\9d¡æ\9c\89å\90\91è¾¹ $(a1,b1)$ å\92\8c $(b2,a2)$ è¡¨ç¤ºé\80\89äº\86 $a1$ å\88\99å¿\85é¡»é\80\89 $b1$ ï¼\8cé\80\89äº\86 $b2$ å\88\99å¿\85é¡»é\80\89 $a2$ æ\89\8dè\83½å¤\9fè\87ªæ´½ã\80\82
+假设有 ${a1,a2}$ 和 ${b1,b2}$ 两对,已知 $a1$ 和 $b2$ 间有矛盾,于是为了方案自洽,由于两者中必须选一个,所以我们就要拉两条有向边 $(a1,b1)$ 和 $(b2,a2)$ 表示选了 $a1$ 则必须选 $b1$ ,选了 $b2$ 则必须选 $a2$ 才能够自洽。
 
 然后通过这样子建边我们跑一遍 Tarjan SCC 判断是否有一个集合中的两个元素在同一个 SCC 中,若有则输出不可能,否则输出方案。构造方案只需要把几个不矛盾的 SCC 拼起来就好了。