hdu1269 迷宫城堡(强连通图)
来源:互联网 发布:linux 重启oracle 编辑:程序博客网 时间:2024/04/30 16:19
强连通模版题~
tarjan算法,通过计算强连通分量的个数来判断此图是否为强连通图
#include <stdio.h>#include <vector>#include <string.h>#include <stack>#include <algorithm>using namespace std;#define N 10005vector<int>link[N];//邻接表建图 stack<int>s;int dfn[N],low[N]; bool isStack[N];int n,m;int t=0,edge,num,topStack;void tarjan(int root){ dfn[root]=low[root]=++t;//时间戳 s.push(root); isStack[root]=true; //遍历顶点root指向的每一条边 for(int i=0;i<link[root].size();i++) { edge=link[root][i]; //如果这条边未遍历过 if(!dfn[edge]) { tarjan(edge); low[root]=min(low[edge],low[root]); } //如果这条边已经遍历过 并且在栈里 else if(isStack[edge]) { low[root]=min(low[root],dfn[edge]); } } //如果顶点root是强连通分量的根 if(dfn[root]==low[root]) { //强连通分量个数+1 并将该强连通分量出栈 num++; do { topStack=s.top();s.pop(); isStack[topStack]=false; }while(topStack!=root); }}void doTarjan(){ for(int i=1;i<=n;i++) { if(!dfn[i]) tarjan(i); }}int main(){// freopen("in.txt","r",stdin); while(~scanf("%d %d",&n,&m)) { memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(link,0,sizeof(link)); memset(isStack,false,sizeof(isStack)); if(n==0&&m==0) break; num=0; int a,b; for(int i=0;i<m;i++) { scanf("%d %d",&a,&b); link[a].push_back(b); } doTarjan(); //如果强连通分量只有一个 证明全图此图是个强连通图 if(num==1) puts("Yes"); else puts("No"); } return 0;}
1 0
- hdu1269 迷宫城堡(强连通图)
- 强连通图之HDU1269 迷宫城堡
- 迷宫城堡(hdu1269,强连通分量)
- HDU1269迷宫城堡(强连通分量)
- HDU1269:迷宫城堡(强连通)
- hdu1269 迷宫城堡 (强连通模板)(有向图)
- HDU1269 迷宫城堡 (强连通图判定)
- HDU1269:迷宫城堡【强连通】
- HDU1269 迷宫城堡(tarjan判断强连通)
- HDU1269 迷宫城堡(裸强连通分量)
- [HDU1269]迷宫城堡(Tarjan求强连通分量)
- HDU1269 迷宫城堡(强连通分量tarjan入门题)
- hdu1269迷宫城堡(tarjan求强连通分量模板)
- HDU1269迷宫城堡(强连通tarjan)
- HDU1269 迷宫城堡 强连通 Tarjan
- hdu1269 迷宫城堡 (简单强连通分量)
- 【强连通分量】 hdu1269 迷宫城堡
- hdu1269 迷宫城堡【强连通分量】
- HDU 1114 Piggy-Bank 解题报告(完全背包)
- C++ 牛客网做题总结
- C语言课程设计-模拟银行系统
- 希尔排序
- 内存分配和回收策略简述
- hdu1269 迷宫城堡(强连通图)
- SSM杰信商务平台项目day01
- c3p0
- HDU 3306 矩阵快速幂
- 欢迎使用CSDN-markdown编辑器
- MongoDB基本语法
- C++set
- js实现往表格动态添加学生的学号、姓名、语数英的考试成绩和总分(总分不是填写),实现行与行之的颜色相间,高光的效果
- JAVAWEB开发之Spring详解之——AOP底层剖析(基于JDK和cglib)、Spring中的AOP以及基于AspectJ的AOP实现、Spring的JDBCTemplate详解