tarjan模板

tarjan模板

 

 

#include
using namespace std;

int m,n,a,b,size=0,sign=0,top=0,id[100001];
int first[10001],next[10001],c[10001],v[10001];
int low[10001],dfn[10001],sta[10001],sum;
bool insta[10001];

void inser(int x,int y)
{
    size++;
    next[size]=first[x];
    first[x]=size;
    v[size]=y;
}
void dfss(int x)
{
	int k,i;
    sign++;
    low[x]=sign;
    dfn[x]=sign;
    top++;
    sta[top]=x;
    insta[x]=true;
    k=first[x];
    while(k!=0)
    {
        i=v[k];
        if(dfn[i]==0)
        {
            dfss(i);
            if(low[i]>n>>m;
	for(int i=1;i<=m;i++)
    {
      cin>>a>>b;
      inser(a,b);
      inser(b,a);
    }
    
    for(int i=1;i<=n;i++)
    {
        if(dfn[i]==0)dfss(i);
    }

    cout<

 

 

你可能感兴趣的:(tarjan模板)