一篇讲的详细的博客 https://blog.csdn.net/Hawo11/article/details/74908233
缩点后为什么要建立反图?
如果是按原图处理,选择一个点之后要把所有其后续点也选上,但是如果染色过程中失败,则这次染色的影响要被清空,并选上对立点
这样的复杂度会和暴力dfs相同(原因是拓扑序在前面的传递选择标记对图的影响太大,而不选择标记又不能在正向边中传递)
若建立反图,选了一个点就没有必要将其后续点选上了
其实因为sat图是对称的,所以建立的反图等价于原图中在对立点上进行染色
poj3683 也是看着题解一点点写的。。https://blog.csdn.net/l04205613/article/details/6670334