(连通图 模板题 无向图求桥)Critical Links -- UVA -- 796
链接:
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=737
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82833#problem/C
说实话还不是太懂,自己再写点题理解理解!
代码:
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define N 1005 struct Edge{int v, next;}e[N*N];
struct Bridge{int u, v;}bri[N]; int bnt, n;
int Head[N], cnt;
int dfn[N], low[N], f[N], Index; bool cmp(Bridge a, Bridge b)
{
if(a.u != b.u)
return a.u < b.u;
return a.v < b.v;
} void Init()
{
cnt = bnt = Index = ;
memset(low, , sizeof(low));
memset(dfn, , sizeof(dfn));
memset(f, , sizeof(f)); for(int i=; i<=n; i++)
{
Head[i] = -;
dfn[i] = ;
}
} void AddEdge(int u, int v)
{
e[cnt].v = v;
e[cnt].next = Head[u];
Head[u] = cnt++;
} void TarJan(int u, int fa)
{
f[u] = fa;
low[u] = dfn[u] = ++Index; for(int j=Head[u]; j!=-; j=e[j].next)
{
int v = e[j].v; if(!dfn[v])
{
TarJan(v, u);
low[u] = min(low[u], low[v]);
}
else if(v!=fa)
low[u] = min(low[u], dfn[v]);
}
} int main()
{
while(scanf("%d", &n)!=EOF)
{
int i, j, u, v, m; Init(); for(i=; i<n; i++)
{
scanf("%d (%d)", &u, &m); for(j=; j<m; j++)
{
scanf("%d", &v);
AddEdge(u, v);
}
} for(i=; i<n; i++)
{
if(!dfn[i])
TarJan(i, i);
} for(i=; i<n; i++)
{
int u = f[i];
if(low[i] > dfn[u])
{
bri[bnt].u = min(u, i);
bri[bnt++].v = max(u, i);
}
} sort(bri, bri+bnt, cmp); printf("%d critical links\n", bnt); for(i=; i<bnt; i++)
printf("%d - %d\n", bri[i].u, bri[i].v);
printf("\n");
}
return ;
}
(连通图 模板题 无向图求桥)Critical Links -- UVA -- 796的更多相关文章
- (连通图 模板题 无向图求割点)Network --UVA--315(POJ--1144)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- C - Critical Links - uva 796(求桥)
题意:有一些网络通过一些线路连接,求关键的连接,也就是桥,如果删除这个链接那么会产生两个子树 分析:注意一下图不是连通图即可 ************************************* ...
- kuangbin专题 专题九 连通图 Critical Links UVA - 796
题目链接:https://vjudge.net/problem/UVA-796 题目:裸的求桥,按第一个元素升序输出即可. #include <iostream> #include < ...
- [kuangbin带你飞]专题九 连通图C - Critical Links UVA - 796
这道题就是要求桥的个数. 那么桥相应的也有判定的定理: 在和u相邻的节点中,存在一个节点是最小的时间戳都比 当前u的访问次序要大,也就是说这个点是只能通过果u到达,那么 他们之间相邻的边就是的桥 #i ...
- UVA 796 Critical Links(模板题)(无向图求桥)
<题目链接> 题目大意: 无向连通图求桥,并将桥按顺序输出. 解题分析: 无向图求桥的模板题,下面用了kuangbin的模板. #include <cstdio> #inclu ...
- UVA 796 Critical Links(无向图求桥)
题目大意:给你一个网络要求这里面的桥. 输入数据: n 个点 点的编号 (与这个点相连的点的个数m) 依次是m个点的 输入到文件结束. 桥输出的时候需要排序 知识汇总: 桥: 无向连通 ...
- 【并查集缩点+tarjan无向图求桥】Where are you @牛客练习赛32 D
目录 [并查集缩点+tarjan无向图求桥]Where are you @牛客练习赛32 D PROBLEM SOLUTION CODE [并查集缩点+tarjan无向图求桥]Where are yo ...
- HDU 4738--Caocao's Bridges(重边无向图求桥)
Caocao's Bridges Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- uva 796 Critical Links(无向图求桥)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
随机推荐
- 查看RPM包里的内容
有时候,拿到一个RPM,并不想安装它,而想了解包里的内容,怎么办呢? 如果只相知道包里的文件列表执行: #rpm -qpl packetname 如果想要导出包里的内容,而不是安装,那么执行: # r ...
- C++17尝鲜:类模板中的模板参数自动推导
模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模板参数那样被自动推导的,比如我们无法写 std::pair a{1, "a"s}; // C++17 ...
- Haskell语言学习笔记(33)Exception, Except, ExceptT
Exception class (Typeable e, Show e) => Exception e where toException :: e -> SomeException fr ...
- asp.net cors solution
I have a simple actionmethod, that returns some json. It runs on ajax.example.com. I need to access ...
- .Spark Streaming(上)--实时流计算Spark Streaming原理介
Spark入门实战系列--7.Spark Streaming(上)--实时流计算Spark Streaming原理介绍 http://www.cnblogs.com/shishanyuan/p/474 ...
- 给pyspark 设置新的环境
如果是从pysparkshell里面进去,此时已经有了pyspark环境了,所以要加一个:sc.stop() from pyspark import SparkContext, SparkConfsc ...
- SQL数据库简单的建立与操作
数据类型 符号标志 整数型 bigint,int,smallint,mediumint,tinyint 精确数值型 decimal,numeric 浮点型 float,real,double 位型 b ...
- fusioncharts Y轴不显示中文的解决方法(转载)
使用fusionChart主要是被其界面吸引了,各类图表都很好看,下载以后文档也很周全,支持的语言也很多种 ,容易上手.fusionChart工作原理主要是通过后台传xml数据源给报表前台flash ...
- OC 线程操作 - GCD使用 -线程通讯, 延迟函数和一次性代码
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{ // [self downImag ...
- [leetcode]340. Longest Substring with At Most K Distinct Characters至多包含K种字符的最长子串
Given a string, find the length of the longest substring T that contains at most k distinct characte ...