#include <iostream> #include <cstring> using namespace std; const int N = 1e5 + 10; int n; int e[N * 2], ne[N * 2], h[N], idx; // sons[i] 记录节点i为根的子树的节点数 int sons[N]; // 记录节点的颜色 int colors[N]; bool isFailed = false; // 是否染色失败 void add(int a, int b) { e[idx] = b; ne[idx] = h[a]; ...