void dfs(int x){
if(ans[x]){
return;
}
ans[x]=i;//雨露均沾,给这个点能到达的所有点中的所有点都算出来了
for(int i=0;i<g[x].size();i++){
int u=g[x][i];
dfs(u);
}
}
还有,黄巾军一边去
for(i=n;i>=1;i--){
if(!ans[i]){//没被遍历到
dfs(i);//遍历
}
}
这俩搭配,能优化很多,你的TLE就没了