1.求连通分量出度时没有判断 u 和 v 是否在同一连通分量
非
int u = color[x[i]], v = color[y[i]];
out[u] ++;
而是
int u = color[x[i]], v = color[y[i]];
if (u != v) out[u] ++;
2.tarjan 判回边时写错了
非
else if (!vis[v]) low[u] = min(low[u], dfn[v]);
而是
else if (vis[v]) low[u] = min(low[u], dfn[v]);
3.建了双向边(这个好像是 32pts)