ZOJ 1311 Network 割顶
来源:互联网 发布:php 创建远程文件夹 编辑:程序博客网 时间:2024/05/29 15:12
裸的连通图求割点
#include <cstdio>#include <algorithm>#include <cstring>#include <iostream>#include <vector>using namespace std;#define N 103vector<int> g[N];int n, low[N], dfn[N], f[N];bool vis[N];void dfs(int u, int depth, const int &root) { dfn[u] = low[u] = depth; vis[u] = true; int cnt = 0; for (int i=0; i<g[u].size(); i++) { int v = g[u][i]; if (!vis[v]) { cnt++; dfs(v, depth+1, root); low[u] = min(low[u], low[v]); if (u!=root && low[v]>=dfn[u]) f[u]++; if (u==root && cnt>=2) f[u]++; } else low[u] = min(low[u], dfn[v]); }}int main() { int a, b, l; char s[1000]; while (scanf("%d", &n) == 1 && n) { for (int i=0; i<=n; i++) g[i].clear(); while (scanf(" %d", &a) == 1 && a) { b = 0; gets(s); l = strlen(s); for (int i=0; i<l; i++) { if (s[i] == ' ') { if (b) { g[a].push_back(b); g[b].push_back(a); b = 0; } } else b = b*10 + s[i]-'0'; } if (b) { g[a].push_back(b); g[b].push_back(a); } } memset(f, 0, sizeof(f)); memset(vis, false, sizeof(vis)); dfs(1, 1, 1); int ans = 0; for (int i=1; i<=n; i++) if (f[i] >= 1) ans++; printf("%d\n", ans); } return 0;}
- ZOJ 1311 Network 割顶
- POJ-1144 Network((割顶)
- |poj 1144|割顶|Network
- poj1144 Network(割顶)
- POJ1144-Network(割顶模板题)
- POJ 1144 Network (割顶)
- POJ 1144 / ZOJ 1311 : Network - 割点个数
- poj 1144 Network 图的割顶判断模板
- 割顶
- zoj 2676 Network Wars(01分数规划+最小割)
- zoj 2676 Network Wars(最小割,01分数规划)
- 【ZOJ】2676 Network Wars 01分数规划+最小割
- ZOJ 2676 Network Wars 最小割 分数规划
- ZOJ-2676-Network Wars(01分数规划+最小割)
- 割顶(桥)
- ZOJ 1311 Network(tarjan求割点)
- zoj 2676 Network Wars 【0-1分数规划 + 最小割】 【吃一堑长一智】
- 【BZOJ1123】[POI2008]BLO【割顶】
- 数据库新增向父表插入单条数据向子表插入多条数据
- hdu 1232畅通工程
- Java 静态代码块与非静态代码块的区别
- sybase数据库bcp导入数据乱码、换行问题
- drp项目管理日志
- ZOJ 1311 Network 割顶
- sql_查询一张表中的重复数据
- Ios中手势的利用
- 如何在点击浏览器前进、后退键时刷新页面而不读取缓存
- 程序员的职场潜意识Top10
- 关于typedef的用法总结
- C#遍历访问Dictionary和HashTable
- 定义和实现一个类的成员函数为回调函数
- Java基础复习:Map集合常用类 && Collections类 && Arrays类