UVA 796 Critical Links —— (求割边(桥))
和求割点类似,只要把>=改成>即可。这里想解释一下的是,无向图没有重边,怎么可以使得low[v]=dfn[u]呢?只要它们之间再来一个点即可。
总感觉图论要很仔细地想啊- -一不小心就弄混了。。
另外从这题发现,代码还是写成模块化比较好,比如solve一个函数,init一个函数等等,这样可以避免很多东西忘记写,比方说dfn或者G的清空等等。。
代码如下:
- #include <stdio.h>
- #include <stack>
- #include <algorithm>
- #include <string.h>
- #include <vector>
- using namespace std;
- const int N = +;
- stack<int> S;
- int scc_cnt;
- int dfs_clock;
- int dfn[N];
- int low[N];
- int iscut[N];
- vector<int> G[N];
- int n;
- struct bridge
- {
- int u,v;
- void clear()
- {
- if(this->u > this->v) swap(this->u,this->v);
- }
- bool operator < (const bridge & A) const
- {
- return u==A.u ? v<A.v : u<A.u;
- }
- };
- vector<bridge> ans;
- void dfs(int u,int fa)
- {
- dfn[u]=low[u]=++dfs_clock;
- for(int i=;i<G[u].size();i++)
- {
- int v = G[u][i];
- if(!dfn[v])
- {
- dfs(v,u);
- low[u]=min(low[u],low[v]);
- if(low[v]>dfn[u])
- {
- bridge bri = (bridge){u,v};
- bri.clear();
- ans.push_back(bri);
- }
- }
- else if(dfn[v]<dfn[u] && v!=fa)
- {
- low[u]=min(low[u],dfn[v]);
- }
- }
- }
- void init()
- {
- for(int i=;i<n;i++) G[i].clear();
- memset(dfn,,sizeof(dfn));
- dfs_clock=;
- ans.clear();
- }
- void solve()
- {
- for(int i=;i<n;i++)
- {
- if(!dfn[i]) dfs(i,-);
- }
- sort(ans.begin(),ans.end());
- printf("%d critical links\n",ans.size());
- for(int i=;i<ans.size();i++)
- {
- printf("%d - %d\n",ans[i].u,ans[i].v);
- }
- puts("");
- }
- int main()
- {
- while(scanf("%d",&n)==)
- {
- init();
- for(int i=;i<=n;i++)
- {
- int u,num;
- scanf("%d (%d)",&u,&num);
- while(num--)
- {
- int v;
- scanf("%d",&v);
- G[u].push_back(v);
- G[v].push_back(u);
- }
- }
- solve();
- }
- return ;
- }
UVA 796 Critical Links —— (求割边(桥))的更多相关文章
- Uva 796 Critical Links (割边+排序)
题目链接: Uva 796 Critical Links 题目描述: 题目中给出一个有可能不连通的无向图,求出这个图的桥,并且把桥按照起点升序输出(还有啊,还有啊,每个桥的起点要比终点靠前啊),这个题 ...
- uva 796 Critical Links(无向图求桥)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 796 Critical Links(Tarjan求桥)
题目是PDF就没截图了 这题似乎没有重边,若有重边的话这两点任意一条边都不是桥,跟求割点类似的原理 代码: #include <stdio.h> #include <bits/std ...
- UVA 796 - Critical Links (求桥)
Critical Links In a computer network a link L, which interconnects two servers, is considered criti ...
- UVA 796 Critical Links(无向图求桥)
题目大意:给你一个网络要求这里面的桥. 输入数据: n 个点 点的编号 (与这个点相连的点的个数m) 依次是m个点的 输入到文件结束. 桥输出的时候需要排序 知识汇总: 桥: 无向连通 ...
- UVA 796 Critical Links(模板题)(无向图求桥)
<题目链接> 题目大意: 无向连通图求桥,并将桥按顺序输出. 解题分析: 无向图求桥的模板题,下面用了kuangbin的模板. #include <cstdio> #inclu ...
- UVA 796 Critical Links (tarjan算法求割边)
这是在kuangbin的题目里看到的,不得不吐槽一下,题目中居然没给出数据范围,还是我自己猜的-本来是一道挺裸的题,但是我wa了好多次,原因就是这里面有两个坑点,1重边特判,2输出时左边必须比右边小. ...
- UVA 796 - Critical Links 无向图字典序输出桥
题目:传送门 题意:给你一个无向图,你需要找出里面的桥,并把所有桥按字典序输出 这一道题就是用无向图求桥的模板就可以了. 我一直错就是因为我在输入路径的时候少考虑一点 错误代码+原因: 1 #incl ...
- Uva 796 Critical Links 找桥
这个题很简单,但是输入有毒,用字符串的我一直RE 然后换成这样瞬间AC #include <stdio.h> #include <string.h> #include < ...
随机推荐
- redis常用api
一.全局命令 1.keys * //查看所有键 2.dbsize //键总数,如果存在大量键,线上禁止使用此命令 3.exists key //存在返 ...
- Nginx用法详解
nginx作为一个高性能的web服务器,想必大家垂涎已久,蠢蠢欲动,想学习一番了吧,语法不多说,网上一大堆.下面博主就nginx的非常常用的几个功能做一些讲述和分析,学会了这几个功能,平常的开发和部署 ...
- Django rest-framework框架-序列化
序列化: 第一版: class RolesView(APIView): def get(self,request,*args,**kwargs): roles = models.Role.object ...
- asp.net ListView控件的简单实用和配置
1 web窗体界面代码 ItemType:控件要绑定的实体模型 SelectMethod:控件获取实体集合的后台方法 DataKeyNames:实体的主键 UpdateProduct:设置跟新的方法 ...
- Lab2 Report
1.安装SeleniumIDE插件 a)安装Firefox 17.0 - 56.*版本的firefox,下载地址为:http://ftp.mozilla.org/pub/firefox/release ...
- host缓存,浏览器缓存---解决host缓存带来的伤
1.缓存 缓存,对应工程师来讲简直太熟悉了,太方便了,省略到资源或数据的获取方式,直接缓存到离用户访问最快的地方,也降低服务器的压力,比如: (1)静态文件获取 服务器->cdn->本地磁 ...
- 如何使用Marketing Cloud的扩展字段作为搜索条件进行搜索
需求:我在Marketing Cloud的contact模型上用custom field这个应用创建了一个Extension field,名称为微信ID. 现在客户的需求是使用这个字段作为过滤条件进行 ...
- 17.SpringMVC核心技术-拦截器
SpringMVC 中的 Interceptor 拦截器是非常重要和相当有用的,它的主要作用是拦截指定 的用户请求, 并进行相应的预处理与后处理.其拦截的时间点在“处理器映射器根据用户提 交的请求映射 ...
- element 文件上传大小控制
1.页面代码 <el-upload :show-file-list="false" class="upload-demo" :before-upload= ...
- ngnix反向代理后获取用户真实ip及https配置
server {listen 80;listen 802;server_name test111.xxxx.com 118.24.122.101; gzip on;gzip_min_length 10 ...