用一个数组SCC记录即可,重新编号,1....num,具体方法如下代码详见。
#include#include #include #include using namespace std;int n,m;vector >v(10010);int vis[10010];int dfn[10010];int low[10010];int times=0;int num=0;int instack[10010];stack s; //有向图的连通性,用栈。int scc[1010]; int w[1010]; int neww[1010];int ind[1010];void tarjarn(int u){ dfn[u]=low[u]=++times; instack[u]=1; s.push(u); for(int i=0;i