int low[MAX],dep[MAX],mark[MAX],cutpoint[MAX]; void dfs(int s,int father,int depth) { int u,v,tot=0; mark[s]=1; low[s]=dep[s]=depth; for(int i=0;i<mp[s].size();i++) { v=mp[s][i]; if(mark[v]==1&&v!=father&&dep[v]<low[s]) low[s]=dep[v]; else if(mark[v]==0) { tot++; dfs(v,s,depth+1) if(low[v]<low[s]) low[s]=low[v]; if((s==root&&tot>1)||(s!=root&&low[v]>=dep[s])) cutpoint[s]=1; if(low[v]>dep[s]) //标记边(s,v)为割边 } } mark[s]=2; }
【上篇】入职记录
【下篇】VC6.0向导没有MFC ActiveX Controlwizard,MFC AppWizard (dll),MFC AppWizard (exe) VC6.0致命错误 RC1015: 无法打开包含文
【下篇】VC6.0向导没有MFC ActiveX Controlwizard,MFC AppWizard (dll),MFC AppWizard (exe) VC6.0致命错误 RC1015: 无法打开包含文