UVA315- Network(无向图割点)
来源:互联网 发布:steam 知乎 编辑:程序博客网 时间:2024/05/01 10:15
题目链接
题意: 给出一张无向图,求割点的个数
思路:很裸的题目,直接套用模版即可。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1005;struct Edge{ int to, next; bool cut;}edge[MAXN * 10];int head[MAXN], tot;int Low[MAXN], DFN[MAXN];int Index, cnt;bool cut[MAXN];void addedge(int u, int v) { edge[tot].to = v; edge[tot].next = head[u]; edge[tot].cut = false; head[u] = tot++;}void Tarjan(int u, int pre) { int v; Low[u] = DFN[u] = ++Index; int son = 0; for (int i = head[u]; i != -1; i = edge[i].next) { v = edge[i].to; if (v == pre) continue; if (!DFN[v]) { son++; Tarjan(v, u); if (Low[u] > Low[v]) Low[u] = Low[v]; if (u != pre && Low[v] >= DFN[u]) { cut[u] = true; } } else if (Low[u] > DFN[v]) Low[u] = DFN[v]; } if (u == pre && son > 1) cut[u] = true;}void init() { memset(head, -1, sizeof(head)); memset(DFN, 0, sizeof(DFN)); memset(cut, false, sizeof(cut)); tot = 0; Index = cnt = 0;}int main() { int n; while (scanf("%d", &n) && n) { init(); int u, v; while (scanf("%d", &u) && u) { char ch; while (scanf("%d%c", &v, &ch)) { addedge(u, v); addedge(v, u); if (ch == '\n') break; } } for (int i = 1; i <= n; i++) if (!DFN[i]) Tarjan(i, i); for (int i = 1; i <= n; i++) if (cut[i]) cnt++; printf("%d\n", cnt); } return 0;}
0 0
- UVA315- Network(无向图割点)
- UVa315 - Network
- UVA315-Network
- UVA315 Network
- POJ_P1144 Network(无向图割点)
- uva315/poj1144 network 求割点
- uva315 Network 【tarjan-求割点】
- TOJ.1026 Network【求无向图割点】
- UVA315 Network(tarjan求割点)
- UVA 315 Network(Tarjan求无向图割点)
- uva315 Network 【图论-tarjan-求桥】
- UVA315---Network(连通性问题:求割点)
- uva315
- uva315
- ★【求无向图割顶】Network
- POJ 1144 Network 无向图求割点
- poj 1144 Network (无向图求割点)
- poj 1144 Network 无向图求割点
- Vbox中Ubuntu与windows共享文件夹
- debug01:”The project was not built since its build path is incomplete.“问题原因及破解
- Maven常用命令-创建Web项目
- 京东2015 笔试 编程题
- PAT 1036. Boys vs Girls (25)
- UVA315- Network(无向图割点)
- Java中的多线程
- WebRTC源码分析之Video Capture
- stl string 源代码分析
- 移动产品设计随记(二)
- 反渗透设备:正确的使用反渗透设备避免膜性能损坏
- 保证只能在堆上new一个类对象
- Azkaban-任务调度管理器
- VS2012里面使用EF框架的增删改查和分页的方法