HDU 1269 迷宫城堡(tarjan强联通分量)
来源:互联网 发布:yy软件怎么上马甲 编辑:程序博客网 时间:2024/06/10 17:29
思路:
tarjan求强联通分量个数
代码:
#include <iostream>#include <cstdio>#include <algorithm>#include <string.h>using namespace std;int ans;//代表着强联通分量的个数//链式前向星const int maxn = 10010;//最大的点的个数int head[maxn];struct edge{ int to,v,next;}edg[100100];int cnte;void addedge(int x,int y,int v){ edg[++cnte].to = y; edg[cnte].v = v; edg[cnte].next = head[x]; head[x] = cnte;}int dfn[maxn];int low[maxn];int stak[maxn];int visstak[maxn];int cntstak = 0;int belong[maxn];int index;void tarjan(int u){ dfn[u] = low[u] = ++index; stak[cntstak++] = u; visstak[u] = 1; for(int i = head[u];i != -1;){ int v = edg[i].to; if(!dfn[v]){ tarjan(v); low[u] = min(low[u],low[v]); } else if(visstak[v]){ low[u] = min(low[u],dfn[v]); }//第三种情况则是已经找完的点,对于这些点我们不再访问 i = edg[i].next; } if(dfn[u] == low[u]){ ans++; int v; do{ v = stak[--cntstak]; visstak[v] = 0; belong[v] = ans; }while(v != u); }}void ini(){ ans = 0; cnte = 0; index = 0; cntstak = 0; memset(head,-1,sizeof(head)); memset(low,0,sizeof(low)); memset(dfn,0,sizeof(dfn));}int main(){ int n,m; while(~scanf("%d%d",&n,&m),n||m){ ini(); int a,b; for(int i = 1;i <= m;i++){ scanf("%d%d",&a,&b); addedge(a,b,1); } for(int i = 1;i <= n;i++){ if(dfn[i] == 0){ tarjan(i); } } if(ans == 1){ printf("Yes\n"); } else{ puts("No"); } } return 0;}
0 0
- HDU 1269 迷宫城堡 (强联通分量,Tarjan算法)
- HDU 1269 迷宫城堡(tarjan强联通分量)
- [ACM] HDU 1269 迷宫城堡(Tarjan算法求强联通分量)
- 强联通分量简讲(Tarjan算法)&&HDU 1269 迷宫城堡
- HDU 1269 迷宫城堡 强联通分量模板存放处
- HDU - 1269 - 迷宫城堡 (tarjan求强连通分量)
- hdu 1269 迷宫城堡(强连通分量 Tarjan算法)
- HDU 1269 迷宫城堡 [强连通分量] [Tarjan]
- HDU 1269 迷宫城堡 Tarjan强连通分量
- HDU 1269:迷宫城堡 (Tarjan强连通分量)
- HDU 1269 迷宫城堡【Tarjan强连通分量 模板】
- 迷宫城堡 Tarjan求出强联通分量的个数
- 迷宫城堡+tarjan+强联通分量基础题
- hdu1269 迷宫城堡 tarjan求强联通分量
- HDU1269 迷宫城堡 强联通分量Tarjan算法
- hdu 1269 迷宫城堡 强连通分量
- HDU 1269 迷宫城堡(强连通分量)
- HDU 1269 迷宫城堡(强连通分量)
- 对线程的新的认识.线程句柄和线程ID
- maven的核心概念&Maven仓库管理
- 17.04.29 Powerful Incantation
- BZOJ 4810([Ynoi2017]由乃的玉米田-莫队)
- Redis之字典
- HDU 1269 迷宫城堡(tarjan强联通分量)
- find the most comfortable road (并查集 + 暴力)
- Linux下实现Oracle11g静默安装教程
- 【洛谷P3370】【NOIP2013】 火柴排队
- 解决Linux系统下安装redis make出错的问题
- Java运算符口诀
- BZOJ 4811([Ynoi2017]由乃的OJ-树链剖分)
- springAOP的概念
- JDBC连接MySQL数据库