这样为什么不行?
有向图,dfs遍历,如果遍历到一个走过并且dfn序大于等于rt(当前开始遍历的节点)的就是环
void dfs(int x){
if(fl)return;
dfn[x]=++iddfn;
for(int i=He[x];i;i=Nx[i]){
int y=To[i];
if(w[i]<=val)continue;
if(dfn[y]&&dfn[rt]>dfn[y])continue;
if(dfn[y]){fl=1;return;}
dfs(y);
}
}
for(int i=1;i<=n;i++){
if(dfn[i])continue;
rt=i;dfs(i);
if(fl)break;
}