博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Critical Links
阅读量:6095 次
发布时间:2019-06-20

本文共 1723 字,大约阅读时间需要 5 分钟。

UVA 796 Critical Links

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82833#overview

 

题目大意:给你一个网络要求这里面的桥。
输入数据:
n 个点
点的编号  (与这个点相连的点的个数m)  依次是m个点的
 
输入到文件结束。
桥输出的时候需要排序
 
知识汇总:
桥:   无向连通图中,如果删除某条边后,图变成不连通了,则该边为桥。
求桥:
在求割点的基础上吗,假如一个边没有重边(重边 1-2, 1->2 有两次,那么 1->2 就是有两条边了,那么 1->2就不算是桥了)。
当且仅当 (u,v) 为父子边,且满足 dfn[u] < low[v]
#include 
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define INF 0xfffffff#define N 11005#define min(a,b) (a
G[N];int low[N], dfn[N], f[N], Time, n;void init(){ for(int i = 0; i < n; i++) G[i].clear(); Time = 0; memset(low, 0, sizeof(low)); memset(dfn, 0, sizeof(dfn)); memset(f, 0, sizeof(f));}void Tarjan(int u, int fa){ low[u] = dfn[u] = ++Time; f[u] = fa; int len = G[u].size(), v; for(int i = 0; i < len; i++) { v = G[u][i]; if(!low[v]) { Tarjan(v, u); low[u] = min(low[u], low[v]); } else if(fa != v) low[u] = min(low[u], dfn[v]); }}void slove(){ int ans = 0; for(int i = 0; i < n; i++) //可能不是一个连通图,所以每个点都要遍历 if(!low[i]) Tarjan(i, -1); for(int i = 0; i < n; i++) { int v = f[i]; if(v != -1 && dfn[v] < low[i]) // 是桥的条件 { bridge[ans].x = i; bridge[ans].y = v; if(bridge[ans].x > bridge[ans].y) swap(bridge[ans].x, bridge[ans].y); ans ++; } } sort(bridge, bridge+ans); printf("%d critical links\n", ans); for(int i = 0; i < ans; i++) printf("%d - %d\n", bridge[i].x, bridge[i].y); puts("");}int main(){ int a, b, m; while(scanf("%d", &n) != EOF) { init(); for(int i = 0; i < n; i++) { scanf("%d (%d)", &a, &m); while(m--) { scanf("%d", &b); G[a].push_back(b); G[b].push_back(a); } } slove(); } return 0;}

 

 

转载于:https://www.cnblogs.com/Tinamei/p/4707238.html

你可能感兴趣的文章
Chrome浏览器播放HTML5音频没声音的解决方案
查看>>
easyui datagrid 行编辑功能
查看>>
类,对象与实例变量
查看>>
HDU 2818 (矢量并查集)
查看>>
【转】php字符串加密解密
查看>>
22. linux 常用命令
查看>>
ASP.Net 使用GridView模板删除一行的用法
查看>>
(十六)字段表集合
查看>>
JPGraph
查看>>
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
(转)HTML的代码(从朋友那转的,看着觉得会有用就转了)
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
Content Provider的权限
查看>>
416. Partition Equal Subset Sum
查看>>