2-sat是乙個非常簡單的東東,但是網上很多的資料都把這個玩意寫得無比複雜。
可能這就是詳細把,由於我太菜了,只會記結論。
sat 是適定性(satisfiability)問題的簡稱。一般形式為 k - 適定性問題,簡稱 k-sat。而當 k>2 時該問題為 np 完全的。所以我們只研究 k=2 的情況。所以說了怎麼多東東,2-sat到底是什麼鬼。
其實就是給你很多的兩兩限制條件,然後要求出某種方案使得能夠滿足這所有的限制條件。
舉例子就是:
當然,這個例子極其智障。根本看不懂。
比如說,有兩個人要派乙個人去取錢,可以同時去,但是必須有乙個人去。
那麼我們就可以看到有3種情況:
那麼上面這3中情況中,能產生限制條件的是第二種情況。
那麼設a
aa去的狀態為a
aa,不去的狀態為a−1
a^a−
1。設b
bb去的狀態為b
bb,不去的狀態為b−1
b^b−
1。那麼可以用一條有向邊來描述這個限制條件:
a −1
−>
ba^->b
a−1−
>
b則表示a
aa不去,則b
bb必須去。
b −1
−>
ab^->a
b−1−
>
a則表示b
bb不去,則a
aa必須去。
這樣若有眾多的限制條件,就可以構造出乙個有向圖,那麼原問題就轉化成乙個圖上的問題,於是各種tarjan之類的演算法就可以往上面套了。
聽著還是挺簡單的,但分析還是有困難的。
那就看例題!
【wc2016模擬】廢水**
學習資料:
2 SAT學習小計
2 sat是乙個非常簡單的東東,但是網上很多的資料都把這個玩意寫得無比複雜。可能這就是詳細把,由於我太菜了,只會記結論。sat 是適定性 satisfiability 問題的簡稱。一般形式為 k 適定性問題,簡稱 k sat。而當 k 2 時該問題為 np 完全的。所以我們只研究 k 2 的情況。所...
模板 2 SAT 問題 2 SAT
2 sat 問題 模板 有n個布林變數 x 1 x n 另有m個需要滿足的條件,每個條件的形式都是 x i 為true false或 x j 為true false 比如 x 1 為真或 x 3 為假 x 7 為假或 x 2 為假 2 sat 問題的目標是給每個變數賦值使得所有條件得到滿足。輸入格式...
2 SAT學習筆記
由對稱性解2 sat問題 2 sat解法 上面兩篇 很清楚的介紹了什麼是2 sat以及一些原理演算法 2 sat問題是圖論中乙個比較有意思的問題,重點是建圖,對於邊的意思,就是如果你選了i,就必須選j。2 sat問題有個很明顯的地方就是對於每個i,i包含兩個點,i表示選第乙個點,i 表示選第二個點,...