HDU 1269 迷宫城堡 (有向图的强连通分量)
来源:互联网 发布:全民奇迹翅膀进阶数据 编辑:程序博客网 时间:2024/05/18 00:02
判断是否为强连通图,跑一遍模板,强连通分量的个数为1,即为强连通图
#include <iostream>#include <cstring>#include <cstdio>#include <vector>#include <queue>#include <cstring>using namespace std;const int MAXN = 10010; //点数const int MAXM = 100100; //边数struct edge{ int to,next;} edge[MAXM];int head[MAXN],tot;int Low[MAXN],DFN[MAXN],Stack[MAXN],Belong[MAXN];int index,top;int scc;//强连通分量的个数bool instack[MAXN];int num[MAXN]; //各个强连通分量包含点的个数void addedge(int u,int v){ edge[tot].to=v; edge[tot].next=head[u]; head[u]=tot++;}void Tarjan(int u){ int v; Low[u]=DFN[u]=++index; Stack[top++]=u; instack[u]=true; for(int i=head[u]; ~i; i=edge[i].next) { v=edge[i].to; if(!DFN[v]) { Tarjan(v); if(Low[u]>Low[v]) Low[u]=Low[v]; } else if(instack[v]&&Low[u]>DFN[v]) Low[u]=DFN[v]; } if(Low[u]==DFN[u]) { scc++; do { v=Stack[--top]; instack[v]=false; Belong[v]=scc; num[scc]++; } while(v!=u); }}void solve(int n){ memset(DFN,0,sizeof(DFN)); memset(instack,0,sizeof(instack)); memset(num,0,sizeof(num)); index=scc=top=0; for(int i=1; i<=n; ++i) { if(!DFN[i]) Tarjan(i); }}void init(){ tot=0; memset(head,-1,sizeof(head));}int main(){ int n,m; while(cin>>n>>m && n+m!=0) { init(); int a,b; for(int i=0; i<m; ++i) { cin>>a>>b; addedge(a,b); } solve(n); if(scc==1) { puts("Yes"); } else puts("No"); } return 0;}
0 0
- HDU 1269 迷宫城堡 (有向图的强连通分量)
- HDU OJ 1269 迷宫城堡【有向图强连通分量的Tarjan算法 入门】
- hdu 1269 迷宫城堡 tarjan算法求有向图的强连通分量
- HDU 1269 迷宫城堡 (有向图强连通分量Tarjan)
- HDU_P1269 迷宫城堡(有向图的强连通分量)
- HDU ACM 1269迷宫城堡->有向强连通分量(tarjan算法实践)
- hdu 1269 迷宫城堡 强连通分量
- HDU 1269 迷宫城堡(强连通分量)
- HDU 1269 迷宫城堡(强连通分量)
- HDU 1269-迷宫城堡(强连通分量)
- HDU - 1269 迷宫城堡(强连通分量)
- [HDU 1269] 迷宫城堡 强连通分量
- hdu 1269 迷宫城堡 强连通分量
- hdu 1269 迷宫城堡 强连通分量
- 【HDU】 1269 迷宫城堡 强连通分量
- hdu1269 迷宫城堡,有向图的强连通分量 , Tarjan算法
- hdu 1269 迷宫城堡(Tarjan 图的强连通分量)
- HDU - 1269 - 迷宫城堡 (tarjan求强连通分量)
- 大概CentOS7 安装LAMP的步骤
- exchange2003内部之间不能收发邮件
- 04-树8. Complete Binary Search Tree (30)
- 杭电2139
- 访问者模式
- HDU 1269 迷宫城堡 (有向图的强连通分量)
- [编程之美]写一个函数,返回一个数组中所有元素被第一个元素除的结果
- python学习之模块添加
- java常用设计模式
- Exchange2003遇到退信垃圾邮件攻击
- C语言学习笔记
- [AD]使用DCDiag工具测试域控制器的网络连接和DNS解析
- Ubuntu15.04 安装pdf阅读器 Okular
- Spring(十)通过动态代理(JDK的Proxy)和cglib实现AOP技术