【lightoj-1026】Critical Links(桥)
题意:
给出无向图,求桥的模板题。
#include <bits/stdc++.h>
using namespace std;
const int N = ;
int dfn[N], low[N];//时间戳;low[i]以i为根子树的最小祖先的时间戳
bool vis[N];
vector<int>V[N];
int n, num, c;
pair<int, int>P[N];
void dfs(int s, int f)
{
low[s] = dfn[s] = ++num;
for(unsigned int i = ; i < V[s].size(); i++)
{
int v = V[s][i];
if(!dfn[v])//未访问过(s-v为树边)
{
dfs(v, s);//dfs完更新出low[v]
low[s] = min(low[s], low[v]);
if(low[v] > dfn[s])//割边不加=
P[++c].first = min(v, s), P[c].second = max(v, s);
}
else if(v != f) low[s] = min(low[s], dfn[v]);//回边且不是父子
}
}
int main()
{
int t, n, cas = , m, a, b;
cin>>t;
while(t--)
{
memset(dfn, , sizeof dfn);
memset(low, , sizeof low);
memset(vis, , sizeof vis);
scanf("%d", &n);
for(int i = ; i < n; i++) V[i].clear();
num = , c = ;
for(int i = ; i <= n; i++)
{
scanf("%d (%d)", &a, &m);
while(m--)
{
scanf("%d", &b);
V[a].push_back(b);
V[b].push_back(a);
}
}
for(int i = ; i < n; i++)
{
if(!vis[i])
dfs(i, i);
}
sort(P+, P++c);
printf("Case %d:\n%d critical links\n", ++cas, c);
for(int i = ; i <= c; i++)
printf("%d - %d\n", P[i].first, P[i].second);
}
return ;
}
【lightoj-1026】Critical Links(桥)的更多相关文章
- Light OJ - 1026 - Critical Links(图论-Tarjan算法求无向图的桥数) - 带详细注释
原题链接 无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 也可以先用Tajan()进行dfs算出所有点 的low和dfn值,并记录dfs过程中每个 点的父节点:然后再把所有点遍历一遍 ...
- Light OJ 1026 - Critical Links (图论-双向图tarjan求割边,桥)
题目大意:双向联通图, 现在求减少任意一边使图的联通性改变,按照起点从小到大列出所有这样的边 解题思路:双向边模版题 tarjan算法 代码如下: #include<bits/stdc++.h& ...
- lightoj 1026 无向图 求桥
题目链接:http://lightoj.com/volume_showproblem.php?problem=1026 #include<cstdio> #include<cstri ...
- UVA 796 Critical Links(Tarjan求桥)
题目是PDF就没截图了 这题似乎没有重边,若有重边的话这两点任意一条边都不是桥,跟求割点类似的原理 代码: #include <stdio.h> #include <bits/std ...
- [UVA796]Critical Links(割边, 桥)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- UVA 796 - Critical Links (求桥)
Critical Links In a computer network a link L, which interconnects two servers, is considered criti ...
- uva 796 Critical Links(无向图求桥)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 796 Critical Links(无向图求桥)
题目大意:给你一个网络要求这里面的桥. 输入数据: n 个点 点的编号 (与这个点相连的点的个数m) 依次是m个点的 输入到文件结束. 桥输出的时候需要排序 知识汇总: 桥: 无向连通 ...
- C - Critical Links - uva 796(求桥)
题意:有一些网络通过一些线路连接,求关键的连接,也就是桥,如果删除这个链接那么会产生两个子树 分析:注意一下图不是连通图即可 ************************************* ...
随机推荐
- 008-查看JVM参数及值的命令行工具
1. HotSpot vm中的各个globals.hpp文件 查看jvm初始的默认值及参数 globals.hpp globals_extension.hpp c1_globals.hpp c1_g ...
- 怎么找出解析失败的sql
本文由我和公司同事问心共同测试分析完成. 很多时候我们会有这样一个误区,语法错误或者对象不存在应该在语法语义检查这个步骤就结束了,怎么还会存在共享池里面呢?带着这个几个问题我们做几个简单的测试. 我们 ...
- APP 自动化测试封装结构模式
原文出处http://www.toutiao.com/a6268089772108333314/ 做过UI自动化测试同学,都会深深体会几个痛点:维护量大.适配量大.编写代码巨大等.基于这些问题,大家都 ...
- 学员管理系统(简单的Django设计)
学员管理系统(简单的Django设计) 学员管理系统 项目规划阶段 项目背景 近年来老男孩教育的入学学员数量稳步快速增长,传统的excel统计管理学员信息的方式已经无法满足日渐增长的业务需求.因此公司 ...
- ArcGis 获取数据表中某字段唯一值
from:http://www.cnblogs.com/3echo/archive/2006/08/16/478094.html 1 /// <summary> ...
- TCP的握手与挥手
轻轻的TCP走了,正如TCP轻轻的来,TCP挥一挥手,传递了不知多少信息 看到哪,记到哪,想起哪,就看哪,这就是我的博客园,很随性 ---------------------------------- ...
- 第十节课-RNN介绍
2017-08-21 这次的课程介绍了RNN的相关知识: 首先是RNN的几种模型: 分别又不同的应用场景,包括机器翻译,视频的分类... RNN的解释: 主要的特点就是用到了上一个隐含状态的信息,所以 ...
- 第二篇:Spark SQL Catalyst源码分析之SqlParser
/** Spark SQL源码分析系列文章*/ Spark SQL的核心执行流程我们已经分析完毕,可以参见Spark SQL核心执行流程,下面我们来分析执行流程中各个核心组件的工作职责. 本文先从入口 ...
- mysql——主键自动增长&唯一索引
首先说一下主键和唯一索引的区别 主键:一个数据库的一张表有且仅有一个主键,而且主键不能重复 唯一索引:一个数据库的一张表上唯一索引可以有多个,只是所在唯一索引上的值不能重复,这一点和主键一样 下面我们 ...
- 网络数据包头部在linux网络协议栈中的变化
接收时使用skb_pull()不断去掉各层协议头部:发送时使用skb_push()不断添加各层协议头部. 先说说接收: * eth_type_trans - determine the packet' ...