SCC_Gabow

#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 1001;
vector g[MAXN];//adjlist
stack S,P;
int belong[MAXN],vis[MAXN],indeg[MAXN],sccg[MAXN][MAXN],scccnt,disc[MAXN];
void init()
{
	for(int i=0;idisc[v])P.pop();
		}
	}
	if(P.top()==u)
	{
		while(S.top()!=u)
		{
			int v = S.top();
			belong[v] = scccnt;
			S.pop();
		}
		S.pop();
		belong[u] = scccnt;
		P.pop();
		scccnt++;
	}
}
void Gabow(int n)
{
	int time = 0;
	for(int i=1;i<=n;i++)
	{
		if(!vis[i])dfs_scc(i,time);
	}
}
void make_sccg(int n)
{
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j

你可能感兴趣的:(SCC_Gabow)