POJ - 1523 SPF(割点)
来源:互联网 发布:dubbo 千兆网络 编辑:程序博客网 时间:2024/05/01 10:19
题目大意:给出一张图,问去割点后,连通分量的个数有多少
解题思路:割点的水题,套模版就可以
不得不吐槽一下输入。。
#include <cstdio>#include <cstring>#define min(a,b) ((a)<(b)?(a):(b))#define N 1010#define M 2000010struct Edge{ int to, next;}E[M];int head[N], num[N], pre[N], lowlink[N];int tot, dfs_clock, root;bool iscut[N];void dfs(int u, int fa) { lowlink[u] = pre[u] = ++dfs_clock; int child = 0; for (int i = head[u]; i != -1; i = E[i].next) { int v = E[i].to; if (!pre[v]) { child++; dfs(v, u); lowlink[u] = min(lowlink[u],lowlink[v]); if ((u == root && child > 1) || (u != root && pre[u] <= lowlink[v])) { num[u]++; } } else if (v != fa) { lowlink[u] = min(lowlink[u], pre[v]); } }}int cas = 1;void solve() { memset(pre, 0, sizeof(pre)); memset(num, 0, sizeof(num)); dfs_clock = 0; for (int i = 1; i <= 1000; i++) { if (!pre[i] && head[i] != -1) { root = i; dfs(i,-1); } } printf("Network #%d\n", cas++); bool flag = false; for (int i = 1; i <= 1000; i++) if (num[i]) { printf(" SPF node %d leaves %d subnets\n", i, num[i] + 1); flag = true; } if (!flag) { printf(" No SPF nodes\n"); }}void AddEdge(int u, int v) { E[tot].to = v; E[tot].next = head[u]; head[u] = tot++; u = u ^ v; v = u ^ v; u = u ^ v; E[tot].to = v; E[tot].next = head[u]; head[u] = tot++;}int main() { int a, b; bool flag = false; while (scanf("%d", &a) != EOF && a) { if (flag) printf("\n"); flag = true; memset(head, -1, sizeof(head)); tot = 0; scanf("%d", &b); AddEdge(a,b); while (scanf("%d", &a) && a) { scanf("%d", &b); AddEdge(a,b); } solve(); } return 0;}
0 0
- [割点] poj 1523 SPF
- POJ-1523 SPF 割点
- 【POJ】1523 SPF 割点
- POJ - 1523 SPF(割点)
- POJ--1523 SPF(割点)
- POJ 1523 SPF【割点】
- POJ 1523 SPF 割点
- POJ 1523 SPF (割点)
- Poj 1523 SPF(割点 + tarjan算法)
- TOJ 2018 POJ 1523 SPF / 割点
- POJ 1523 SPF(割点)
- POJ-1523 SPF (割点[Tarjan])
- POJ 1523 SPF (割点)
- POJ 1523 SPF 割边与割点
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF(割点所割连通分量数)
- POJ 1523 SPF (割顶 点双连通分量)
- pthread
- linux网络编程应该学习哪些东西
- 前事不忘后事之师
- POJ - 1438 One-way Traffic(混合图改有向图)
- 总结SUMMARY
- POJ - 1523 SPF(割点)
- zoj3164
- Leetcode 236
- 安卓圆角
- linux mysql增加用户,删除用户,以及用户权限
- 【原创】IMSDroid学习之一:编译doubango for android
- POJ 2456 二分
- httpxml.send->拒绝访问错误80070005的解决方法
- 简单实现EditText右侧删除按钮