时间复杂度m+n #include<iostream> #include<string.h> using namespace std; const int N=200010; int n,m; int h[N],ne[N],idx,e[N]; int color[N]; void add(int a,int b) { ne[idx]=h[a],e[idx]=b,h[a]=idx++; } bool dfs(int c,int u) { color[u]=c; for(int i=h[u];i!=-1;i=ne[i]) ...