他的\(g[i]\)其实指的是\(i\)与其所在连通块的代表结点的“相对”染色
1.\(g[i]=0\):若其代表结点染色为\(1\),则其也为\(1\);若为\(0\),则其也为\(0\)
2.\(g[i]=1\):若其代表结点染色为\(1\),则其为\(0\);若为\(0\),则其为\(1\)
显然他这种做法是正确的,但可以用另一种方法建图:即加上边权(\(1\)\(0\)),在跑图的时候抑或上每条边权即可
可以好好看下luogu上本人代码是如何实现\(O(1)\)清图的,可以用来建多个图