1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int n,m,ntime;//ntime记录dfs访问时间 8 int instack[11000];//标记点是否在栈中 9 int dfn[11000];//节点在dfs过程中的访问序号(也可以叫做开始时间)10 int low[11000];//从该节点出发dfs过程中该节点下方节点(开始时间大于该节点的开始时间,且由该节点可达的节点)所能到达的最早的节点的开始时间,初始low数组等于dfn数组11 vector > g;12 stack st;13 void tarjan(int u)14 {15 int i,v;16 dfn[u]=low[u]=ntime++;17 st.push(u);18 instack[u]=1;19 for(i=0;i