版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YewSpadeJ/article/details/81937579
int vis[maxn], low[maxn], dfn[maxn],cnt,sig;
vector<int> poi[maxn];
void tarjan(int u)
{
vis[u] = 1, low[u] = dfn[u] = cnt++;
for(int i = 0;i < poi[u].size(); i++)
{
int v = poi[u][i];
if(!vis[v])tarjan(v);
if(vis[v])low[u] = min(low[u],low[v]);
}
if(dfn[u] == low[u]) sig++;
}