【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(求桥)
题意:有一些网络通过一些线路连接,求关键的连接,也就是桥,如果删除这个链接那么会产生两个子树 分析:注意一下图不是连通图即可 ************************************* ...
随机推荐
- django_上传文件
要求: 写一个文件上传:如果文件名字重复,不要覆盖,并且放到项目根路径的media文件夹下 def upload(request): if request.method == "GET&q ...
- Vijos p1303导弹拦截(LIS+贪心)
传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...
- filebeat 简介安装
Filebeat is a lightweight shipper for forwarding and centralizing log data. Installed as an agent on ...
- Python和数据科学的起步指南
http://python.jobbole.com/80853/ Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在 ...
- 解决127.0.0.1 localhost 劫持问题
在一个安装iis的过程中,把网站部署上去之后就发现127.0.0.1或者localhost都会跳转到一个莫名的网站,发现断网之后就是会跳转到一个Http://www.76636.com 类似这种的网站 ...
- mapreduce中获取输入文件的路径
InputSplit inputSplit = context.getInputSplit(); String fileName = ((FileSplit) inputSplit).getPath( ...
- str()和repr()(以及``操作符)
内建函数str()和repr()或反引号操作符(``)可以方便的获取字符串. str它会把值转换为合理形式的字符串,可读性更好,同时对用户来说更加友好. repr它会创建一个字符串,以合法的Pytho ...
- 【转】Python爬虫(7)_scrapy-redis
scrapy-redis使用以及剖析 scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调 ...
- jquery 获取checkbox 选中值并拼接字符集
1.代码示例: var chk_value =[]; $('input[name="rewardids"]:checked').each(function(){ chk_val ...
- web.xml配置之<context-param>详解
读完本文,你将了解(1)<context-param>的作用和用法,(2)<context-param>配置和<init-param>的区别 <context ...