染色法
bool dfs(int x, int color) { v[x] = color; for (unsigned int i = 0; i < e[x].size(); i++) { int y = e[x][i].first; if (v[y]) { if (v[y] == color) return 0; } else { if (!dfs(y, 3 - color)) return 0; } } return 1; }
原文:https://www.cnblogs.com/ruanmowen/p/12724225.html