【概念】
我们把N个点N条边的连通无向图,即在树上加一条边恰好包含一个环的图,称为 基环树 。有向图中,N个点N条边、每个节点有且仅有一条入边的有向图称为 外向图;有且仅有一条出边的有向图称为 内向图 。如果有向图不能保证联通,这样的有向图也可能是 内(外)向树森林 。
【过程】
1.找环
往子节点遍历,如果当前结点的叶子结点走过就形成了一个环。
为了重复统计或者有RE,当且仅当dfn[子节点]>dfn[当前结点]时,判定为环并标记
记录环上结点时,从子节点不断往上跳直到跳到当前结点停止
<代码实现>
inline void dfs(int x,int fa){
dfn[x]=++cnt;
for(int i=lin