强连通分量+poj2186

网友投稿 260 2022-09-06

强连通分量+poj2186

强连通分量:两个点可以互相连通。

算法分解:第一步,正向dfs所有顶点,并后序遍历

第二步,将边反向,从最大边dfs,构成强连通分量

标号最大的节点属于DAG头部,cmp存一个强连通分量的拓扑序。

poj2186

解就是拓扑后的最后一个强连通分量

#include#include#include#include#include#includeusing namespace std;#define MAX_V 10000#define MAX_M 50000int V,N,M;int A[MAX_M],B[MAX_M];vector G[MAX_V];vector rG[MAX_V];vector vs;bool used[MAX_V];int cmp[MAX_V];void add_edge(int from,int to){ G[from].push_back(to); rG[to].push_back(from);}void dfs(int v){ used[v]=true; for(int i=0;i=0;i--) if(!used[vs[i]]) rdfs(vs[i],k++); return k;}void solve(){ V = N; for(int i=0;i

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DoMarketing-营销智库:吴晓波,中产阶级的看门狗!
下一篇:{DP!}ZOJ 2604
相关文章

 发表评论

暂时没有评论,来抢沙发吧~