bool bipartite(int u) {
for (int i = 0; i < g[u].size(); i++) {
int v = g[u][i];
if (color[v] == color[u]) return false;
if (!color[v]) {
color[v] = 3 - color[u];
if (!bipartite(v)) return false;
}
}
return true;
}
判断结点u所在的连通分量是否为二分图