判断仙人掌图

关于如何判断仙人掌图,方法其实是记录环上点的度数。若一个点的度数超过2,则不是仙人掌图。

环上有几个点,可以通过深度来直接表示。

inline void DP(int rt,int x)
{
    int num=dep[x]-dep[rt]+1;
    for(int i=x;i!=rt;i=fa[i])
    {
        du[i]++;
        if(du[i]>1) flag=1;
    }
}
void tarjan(int u,int f)
{
    dfn[u]=low[u]=++deep;
    fa[u]=f;dep[u]=dep[f]+1;
    for(int i=0;idfn[u]) DP(u,v);
        if(flag) return;
    }
}

 

你可能感兴趣的:(判断仙人掌图)