拓扑排序判环要把根访问不到的点的边删干净。
dfs(0); queue<int> q; int cnt = 0; for(int i = 0; i <= idx; ++ i) { if(!vis[i]) { for(int j : g[i]) { -- d[j]; } } else if(!d[i]) q.ep(i); }