而且如果你用的是题解里 O(n2+nq)O(n^2+nq)O(n2+nq) 的做法,尝试调换 vis 和 vis2 数组两维的顺序。因为 O(nq)O(nq)O(nq) 部分有这样的代码,u,vu,vu,v 在第一维显然最优。
vis
vis2
for(int j = 1; j <= n; j++) if(fa[j] != u && fa[j] != 1 && vis[u][fa[j]] && vis2[v][j]) cg[j] = true;