poj 2186 (求一个图中可以到达所有点的点的个数) (强连通)
来源:互联网 发布:服务器端口检测 编辑:程序博客网 时间:2024/06/05 23:55
#include<cstdio>#include<cstring>#include<vector>#define MAX_N 10000+16using namespace std;vector<int>G[MAX_N];vector<int>rG[MAX_N];vector<int>vs;bool vis[MAX_N];int cmp[MAX_N];int n,m,V;void add_edge(int from,int to){G[from].push_back(to);rG[to].push_back(from);} void dfs(int v){ vis[v]=1; for(int i=0;i<G[v].size();i++) { if(!vis[G[v][i]]) dfs(G[v][i]); } vs.push_back(v);}void rdfs(int v,int k){vis[v]=1;cmp[v]=k;for(int i=0;i<rG[v].size();i++){if(!vis[rG[v][i]])rdfs(rG[v][i],k);}}int scc(){memset(vis,0,sizeof(vis));vs.clear();for(int v=0;v<V;v++){if(!vis[v])dfs(v);}memset(vis,0,sizeof(vis));int k=0;for(int i=vs.size()-1;i>=0;i--){if(!vis[vs[i]])rdfs(vs[i],k++);} return k;}int main(){int a,b;scanf("%d%d",&n,&m);V=n;for(int i=0;i<m;i++){scanf("%d%d",&a,&b);add_edge(a-1,b-1);} int res=scc();int u=0,num=0;for(int v=0;v<V;v++){if(cmp[v]==res-1){u=v;num++;}}memset(vis,0,sizeof(vis));rdfs(u,0);for(int v=0;v<V;v++) { if(!vis[v]) { num=0; break;}}printf("%d\n",num);}
0 0
- poj 2186 (求一个图中可以到达所有点的点的个数) (强连通)
- poj Popular Cows 2186 (强连通分量 求有多少个点可以被 其他所有点到达) 好题
- poj 2553 (tarjan求强连通分量+缩点)
- 两种代码风格解决强连通分量解决加多少条边使整个图连通&多少个点可以到达所有点
- POJ 2186(有向图的强连通分量)[改][Template:SSC/缩点]
- 强连通分量+缩点(记录所缩点的个数)
- poj 2186 Popular Cows 【有向图求SCC +缩点】【求图中有多少个点 可以由其余所有点通过存在路径到达】
- poj2186 求有向图G中所有点都能到达的点的数量
- 求一个连通图的割点
- 求一个连通图的割点(去掉一个点后图不再连通)
- poj 2553(3180) tarjan强连通分量(找图的“sink”点)
- hdoj Summer Holiday 1827 (强连通分量 求最少连通多少点从而连通所有点) arjan求SCC+缩点 好题
- pku1737给定点求连通图的个数
- POJ1236【图的强连通(缩点)】
- Popular Cows poj 2186(强连通分量+缩点 )
- Poj 3180 The Cow Prom【求强连通分量中元素个数大于1的个数】
- 【连通图|强连通+缩点】POJ-2186 Popular Cows
- poj Network of Schools 1236 (强连通分量+缩点) (问添加几个点最少点是所有点连接+添加最少边使图强连通) 好题
- 使用SearchView+RecyclerView做搜索框
- ADV-97-算法提高-十进制数转八进制数
- 【NOI2014模拟7.14】Problem A
- C语言实现日历(命令行传参)
- Spatialite库NHibernate应用错误一
- poj 2186 (求一个图中可以到达所有点的点的个数) (强连通)
- Servlet 、Filter 的url-pattern
- 蓝桥 字符串比较
- HashMap 和HashTable的区别
- 一些知识点:Spring AOP
- B. Sherlock and his girlfriend
- 什么是IaaS, PaaS和SaaS及其区别
- JS必须保证第一个为数字而不是. 只能輸入4个小数
- rand()函数的分析和使用