noi模板-HDU1269-强连通分量
来源:互联网 发布:linux informix 安装 编辑:程序博客网 时间:2024/06/05 09:47
HDU1269
#include <bits/stdc++.h>using namespace std;#define rep(i, l, r) for (int i = l; i <= r; i++)#define REP(i, l, r) for (int i = l; i >= r; i--)#define MAXN 100010int n, m, first[MAXN], nxt[MAXN], N = -1, dfn[MAXN], low[MAXN], belong[MAXN], cnt, Time;stack<int> s;bool vis[MAXN];struct edge {int x, y;} a[MAXN];inline int read() { int x = 0, f = 1; char ch = getchar(); while (ch<'0' || ch>'9') {if (ch == '-') f = -1; ch = getchar();} while (ch>='0' && ch<='9') x = x*10 + ch - '0', ch = getchar(); return x*f;}inline void add(int x, int y) {a[++N].x = x, a[N].y = y, nxt[N] = first[x], first[x] = N;}inline void tarjan(int x) { dfn[x] = low[x] = ++Time; s.push(x); vis[x] = 1; for (int i = first[x], y = a[i].y; ~i; i = nxt[i]) if (!dfn[y]) tarjan(y), low[x] = min(low[x], low[y]); else if (vis[y]) low[x] = min(low[x], dfn[y]); if (dfn[x] == low[x]) { cnt++; int y; do { y = s.top(); s.pop(); vis[y] = 0; belong[y] = cnt; }while (x != y); }}inline bool equiv(int *a, int n) { int t = a[1]; rep(i, 2, n) if (a[i] != t) return 0; return 1;}int main() { while (n = read()) { m = read(); N = -1; memset(first, -1, sizeof(first)); rep(i, 1, m) { int tx = read(), ty = read(); add(tx, ty); } memset(dfn, 0, sizeof(dfn)); memset(vis, 0, sizeof(vis)); Time = cnt = 0; rep(i, 1, n) if (!dfn[i]) tarjan(i); puts(equiv(belong, n) ? "Yes" : "No"); } return 0;}
0 0
- noi模板-HDU1269-强连通分量
- hdu1269 Tarjan强连通分量 模板
- hdu1269 强连通分量
- hdu1269强连通模板
- hdu1269 强连通分量tarjan
- hdu1269有向图强连通分量(tanjar模板)
- hdu1269迷宫城堡(tarjan求强连通分量模板)
- 迷宫城堡(hdu1269,强连通分量)
- hdu1269 迷宫城堡 (简单强连通分量)
- 【强连通分量】 hdu1269 迷宫城堡
- HDU1269迷宫城堡(强连通分量)
- hdu1269 迷宫城堡【强连通分量】
- 强连通分量模板
- 强连通分量模板
- 强连通分量模板
- 强连通分量 模板
- 强连通分量模板
- 强连通分量模板
- 【机房重构】SQL语句已终止
- Median of Two Sorted Arrays
- 每天一个小知识点3(原型与构造函数总结一)
- 冒泡方排序
- Linux下执行ping命令创建得到的进程的有效用户不是root
- noi模板-HDU1269-强连通分量
- Hive Cilent数据操作
- 一个非常strong的编程学习方法
- 标准I/O文件复制,文件I/O文件复制
- LOAD DATA LOCAL INFILE
- POJ 1287
- LightOJ 1295 Lighting System Design dp
- android studio删除行 相当于 Eclipse中 Ctrl+D
- Codeforces Round #312 (Div. 2) A B C D E