我們先不要管兩個數按位與為\(1\)和兩個數按位或為\(0\)的情況
那麼剩下的情況就是很簡單的2-SAT問題
就像並查集處理二元關係一樣,這裡最後建成的圖一定是完全對稱的,如下
其中每個點都是一個SCC
然後我們再來看剩下的兩種情況,拿兩個數按位與為\(1\)為例
這就說明兩個數必須要都是\(1\),反映在圖上就是兩個數為\(1\)的那個域所在的SCC都必須選,兩個數為\(0\)的那個域所在的SCC都不能選
於是我們像藍書這樣連邊的話,就可以處理上面的情況了,因為如果沒矛盾的話,藍書的連邊方法只會是橫跨兩個部的有向邊(而且一定是水平的,因為映象對稱),於是這種有向邊是不可能與其他橫跨兩個部的有向邊一起形成環的,也就是說這種有向邊形成環當且僅當有一條邊的兩端與其相同且方向與其相反,這就是對應了一個值有兩種取值方法