[kuangbin带你飞]专题九 连通图C - Critical Links UVA - 796
这道题就是要求桥的个数。
那么桥相应的也有判定的定理:
在和u相邻的节点中,存在一个节点是最小的时间戳都比
当前u的访问次序要大,也就是说这个点是只能通过果u到达,那么
他们之间相邻的边就是的桥
#include<iostream>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
const int SIZE = ;
struct node{
int u,v;
}brige[SIZE];
int head[SIZE],ver[SIZE*],Next[SIZE*];
int dfn[SIZE],low[SIZE],n,m,tot,num,cnt;
void add(int x,int y){
ver[++tot]=y,Next[tot]=head[x],head[x]=tot;
}
void tarjan(int u,int pre){
dfn[u]=low[u]=++num;
for (int i=head[u];i;i=Next[i]){
int v=ver[i];
if (v==pre)continue;
if (!dfn[v]){
tarjan(v,u);
low[u]=min(low[u],low[v]);
if (low[v]>dfn[u]){
/*
在和u相邻的节点中,存在一个节点是最小的时间戳都比
当前u的访问次序要大,也就是说这个点是只能通过果u到达,那么
他们之间相邻的边就是的桥
*/
cnt++;
brige[cnt].u=u;
brige[cnt].v=v;
if (brige[cnt].u>brige[cnt].v){
swap(brige[cnt].u,brige[cnt].v);
}
}
}
else if (low[u]>dfn[v])
low[u]=min(low[u],dfn[v]);
}
}
void init(){
memset(brige,,sizeof(brige));
memset(low,,sizeof(low));
memset(ver,,sizeof(ver));
memset(dfn,,sizeof(dfn));
memset(Next,,sizeof(Next));
memset(head,,sizeof(head));
cnt=;
num=;
tot=;
}
bool cmp(node a,node b){
if (a.u==b.u)return a.v<b.v;
return a.u<b.u;
}
int main(){
int id,tmp,nx;
while(~scanf("%d",&n)){
if (n==){
printf("0 critical links\n\n");
continue;
}
init();
for(int i=;i<=n;i++){
scanf("%d",&id);
id++;
getchar();
getchar();
scanf("%d",&tmp);
getchar();
for (int j=;j<=tmp;j++){
scanf("%d",&nx);
nx++;
add(id,nx);
add(nx,id);
}
}
for (int i=;i<=n;i++){
if(!dfn[i])tarjan(i,i);
}
printf("%d critical links\n",cnt);
sort(brige+,brige++cnt,cmp);
for (int i=;i<=cnt;i++){
printf("%d - %d\n",brige[i].u-,brige[i].v-);
}
printf("\n"); }
return ;
}
/*
3 critical links
0 - 1
3 - 4
6 - 7 */
[kuangbin带你飞]专题九 连通图C - Critical Links UVA - 796的更多相关文章
- [kuangbin带你飞]专题九 连通图
ID Origin Title 76 / 163 Problem A POJ 1236 Network of Schools 59 / 177 Problem B UVA 315 Ne ...
- [kuangbin带你飞]专题九 连通图E POJ 3177 Redundant Paths
这个题最开始我想的是,直接缩点求双连通分量,连接这些双联通分量不就行了吗? 但是其实是不对的,双连通内部双联通,我们如果任意的连接一条边在这些双联通分量之间,他们之间有没有桥其实并不知道. 我应该是求 ...
- [kuangbin带你飞]专题九 连通图D - Network POJ - 3694
这道题其实也非常简单,只是在求割边及其个数的情况下,每次往里面加入新的边,并再次计算割边的个数. 我们用tarjan可以求出原图的桥以及个数,当然我们不能暴力加边,然后求解,那么如何求呢??? 其实非 ...
- [kuangbin带你飞]专题九 连通图B - Network UVA - 315
判断割点的性质: 如果点y满足 low[y]>=dfn[x] 且不是根节点 或者是根节点,满足上述式子的有两个及其以上. 就是割点 如果是起点,那么至少需要两个子节点满足上述条件,因为它是根节点 ...
- 给自己的小练习19-[kuangbin带你飞]专题九连通图
没有写题解.补一波 Network of Schools 问题1:求有向图中入度为0的点个数 问题2:使得整个图变成一个联通分量 问题1直接缩点统计 问题2=max(入度为0的点,出度为0的点),注意 ...
- [kuangbin带你飞]专题1-23题目清单总结
[kuangbin带你飞]专题1-23 专题一 简单搜索 POJ 1321 棋盘问题POJ 2251 Dungeon MasterPOJ 3278 Catch That CowPOJ 3279 Fli ...
- 【算法系列学习三】[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 反向bfs打表和康拓展开
[kuangbin带你飞]专题二 搜索进阶 之 A-Eight 这是一道经典的八数码问题.首先,简单介绍一下八数码问题: 八数码问题也称为九宫问题.在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的 ...
- [kuangbin带你飞]专题十 匹配问题
A-L 二分匹配 M-O 二分图多重匹配 P-Q 二分图最大权匹配 R-S 一般图匹配带花树 模板请自己找 ID Origin Title 61 / 72 Problem A HD ...
- [kuangbin带你飞]专题十 匹配问题 一般图匹配
过去做的都是二分图匹配 即 同一个集合里的点 互相不联通 但是如果延伸到一般图上去 求一个一般图的最大匹配 就要用带花树来解决 带花树模板 用来处理一个无向图上的最大匹配 看了一会还是不懂 抄了一遍 ...
随机推荐
- 系统日志和内核消息 $ dmesg$ less /var/log/messages$ less /var/log/secure$ less /var/log/auth
查看错误和警告消息,比如看看是不是很多关于连接数过多导致? 看看是否有硬件错误或文件系统错误? 分析是否能将这些错误事件和前面发现的疑点进行时间上的比对.
- 洛谷P2859 [USACO06FEB]摊位预订Stall Reservations
P2859 [USACO06FEB]摊位预订Stall Reservations 题目描述 Oh those picky N (1 <= N <= 50,000) cows! They a ...
- Leetcode78. Subsets子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2 ...
- 架构 - 业务流程管理介绍(BPM)
什么是业务流程 维基百科中说,业务流程是为特定的对象(客户)创造价值的过程,这一过程由一系列相关联.有组织的活动或任务组成.企业和组织中的流程常常划分为三种基本类型: 管理流程——对系统运作进行管制. ...
- 【eclipse】解决:eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题
eclipse或STS运行maven工程出现Missing artifact jdk.tools:jdk.tools:jar:1.7问题 最近项目中使用到大数据平台,代码中应用了hbase-clien ...
- 【python小随笔】celery周期任务(简单原理)
1:目录结构 |--celery_task |--celery.py # 执行任务的main函数 |--task_one # 第一个任务 |--task_two # 第2个任务 . . . . |-- ...
- 使用SQLyog将Mysql中的表导出为Excel
有时会有这样的需求:将MYSQL数据库中的某个表格导出,存为Excel文件.下面介绍步骤: 1.打开SQLyog,选中要导出的表 2.右键--备份/导出--导出表数据作为... 3.如图选择 Exce ...
- 人物-旅行-潘德明-Info:《近代中国徒步环游世界第一人:潘德明 》
ylbtech-人物-旅行-潘德明-Info:<近代中国徒步环游世界第一人:潘德明 > 1.返回顶部 1. 近代中国徒步环游世界第一人:潘德明 2016-10-12 18:01 “以世界为 ...
- GeoServer手动发布本地Shapefile地图
首先,本文实现的结果图给大家展现一下: 放大的样子: 颜色是通过属性中某个字段值来分级的,可以自定义. 上面功能是用ArcGIS切片好数据,在Geoserver 中发布,并用google地图作为底图展 ...
- JavaScript--DOM操作例子:隔行变色
上效果: 实现思想: 主要是js动态创建标签,还有动态结合css实现样式 <!DOCTYPE html> <html lang="en"> <head ...