コード例 #1
0
 //(x_i=f)V(x_j=g) <-> !(x_i=f)->(x_j=g) <-> !(x_j=g)->(x_i=f)の追加
 public void AddClosure(int i, bool f, int j, bool g)
 {
     scc.AddEdge((i << 1) | (f ? 0 : 1), (j << 1) | (g ? 1 : 0));
     scc.AddEdge((j << 1) | (g ? 0 : 1), (i << 1) | (f ? 1 : 0));
 }