题意:

给出无向图,求桥的模板题。

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = ;
  4. int dfn[N], low[N];//时间戳;low[i]以i为根子树的最小祖先的时间戳
  5. bool vis[N];
  6. vector<int>V[N];
  7. int n, num, c;
  8. pair<int, int>P[N];
  9. void dfs(int s, int f)
  10. {
  11. low[s] = dfn[s] = ++num;
  12. for(unsigned int i = ; i < V[s].size(); i++)
  13. {
  14. int v = V[s][i];
  15. if(!dfn[v])//未访问过(s-v为树边)
  16. {
  17. dfs(v, s);//dfs完更新出low[v]
  18. low[s] = min(low[s], low[v]);
  19. if(low[v] > dfn[s])//割边不加=
  20. P[++c].first = min(v, s), P[c].second = max(v, s);
  21. }
  22. else if(v != f) low[s] = min(low[s], dfn[v]);//回边且不是父子
  23. }
  24. }
  25. int main()
  26. {
  27. int t, n, cas = , m, a, b;
  28. cin>>t;
  29. while(t--)
  30. {
  31. memset(dfn, , sizeof dfn);
  32. memset(low, , sizeof low);
  33. memset(vis, , sizeof vis);
  34. scanf("%d", &n);
  35. for(int i = ; i < n; i++) V[i].clear();
  36. num = , c = ;
  37. for(int i = ; i <= n; i++)
  38. {
  39. scanf("%d (%d)", &a, &m);
  40. while(m--)
  41. {
  42. scanf("%d", &b);
  43. V[a].push_back(b);
  44. V[b].push_back(a);
  45. }
  46. }
  47. for(int i = ; i < n; i++)
  48. {
  49. if(!vis[i])
  50. dfs(i, i);
  51. }
  52. sort(P+, P++c);
  53. printf("Case %d:\n%d critical links\n", ++cas, c);
  54. for(int i = ; i <= c; i++)
  55. printf("%d - %d\n", P[i].first, P[i].second);
  56. }
  57. return ;
  58. }

【lightoj-1026】Critical Links(桥)的更多相关文章

  1. Light OJ - 1026 - Critical Links(图论-Tarjan算法求无向图的桥数) - 带详细注释

     原题链接   无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 也可以先用Tajan()进行dfs算出所有点 的low和dfn值,并记录dfs过程中每个 点的父节点:然后再把所有点遍历一遍 ...

  2. Light OJ 1026 - Critical Links (图论-双向图tarjan求割边,桥)

    题目大意:双向联通图, 现在求减少任意一边使图的联通性改变,按照起点从小到大列出所有这样的边 解题思路:双向边模版题 tarjan算法 代码如下: #include<bits/stdc++.h& ...

  3. lightoj 1026 无向图 求桥

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1026 #include<cstdio> #include<cstri ...

  4. UVA 796 Critical Links(Tarjan求桥)

    题目是PDF就没截图了 这题似乎没有重边,若有重边的话这两点任意一条边都不是桥,跟求割点类似的原理 代码: #include <stdio.h> #include <bits/std ...

  5. [UVA796]Critical Links(割边, 桥)

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  6. UVA 796 - Critical Links (求桥)

    Critical Links  In a computer network a link L, which interconnects two servers, is considered criti ...

  7. uva 796 Critical Links(无向图求桥)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  8. UVA 796 Critical Links(无向图求桥)

    题目大意:给你一个网络要求这里面的桥. 输入数据: n 个点 点的编号  (与这个点相连的点的个数m)  依次是m个点的   输入到文件结束. 桥输出的时候需要排序   知识汇总: 桥:   无向连通 ...

  9. C - Critical Links - uva 796(求桥)

    题意:有一些网络通过一些线路连接,求关键的连接,也就是桥,如果删除这个链接那么会产生两个子树 分析:注意一下图不是连通图即可 ************************************* ...

随机推荐

  1. django_上传文件

    要求:  写一个文件上传:如果文件名字重复,不要覆盖,并且放到项目根路径的media文件夹下 def upload(request): if request.method == "GET&q ...

  2. Vijos p1303导弹拦截(LIS+贪心)

    传送门:https://vijos.org/p/1303 背景 实中编程者联盟为了培养技术精湛的后备人才,必须从基础题開始训练. 描写叙述 某国为了防御敌国的导弹突击,研发出一种导弹拦截系统. 可是这 ...

  3. filebeat 简介安装

    Filebeat is a lightweight shipper for forwarding and centralizing log data. Installed as an agent on ...

  4. Python和数据科学的起步指南

    http://python.jobbole.com/80853/ Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在 ...

  5. 解决127.0.0.1 localhost 劫持问题

    在一个安装iis的过程中,把网站部署上去之后就发现127.0.0.1或者localhost都会跳转到一个莫名的网站,发现断网之后就是会跳转到一个Http://www.76636.com 类似这种的网站 ...

  6. mapreduce中获取输入文件的路径

    InputSplit inputSplit = context.getInputSplit(); String fileName = ((FileSplit) inputSplit).getPath( ...

  7. str()和repr()(以及``操作符)

    内建函数str()和repr()或反引号操作符(``)可以方便的获取字符串. str它会把值转换为合理形式的字符串,可读性更好,同时对用户来说更加友好. repr它会创建一个字符串,以合法的Pytho ...

  8. 【转】Python爬虫(7)_scrapy-redis

    scrapy-redis使用以及剖析   scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序,该组件本质上提供了三大功能: scheduler - 调 ...

  9. jquery 获取checkbox 选中值并拼接字符集

    1.代码示例: var chk_value =[]; $('input[name="rewardids"]:checked').each(function(){   chk_val ...

  10. web.xml配置之<context-param>详解

    读完本文,你将了解(1)<context-param>的作用和用法,(2)<context-param>配置和<init-param>的区别 <context ...