题目大意:双向联通图, 现在求减少任意一边使图的联通性改变,按照起点从小到大列出所有这样的边

解题思路:双向边模版题 tarjan算法

代码如下:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int N = ;
  5. vector<int>vec[N];
  6. pair<int, int>edge[N];
  7. int dfn[N], low[N];
  8. int res, ans;
  9.  
  10. void tarjan(int u, int f)
  11. {
  12. dfn[u] = low[u] = res ++;
  13. for(int i = ; i < vec[u].size(); ++ i)
  14. {
  15. int v = vec[u][i];
  16. if(dfn[v] == -)
  17. {
  18. tarjan(v, u);
  19. low[u] = min(low[u], low[v]);
  20. }
  21. else if(f != v)
  22. low[u] = min(low[u], dfn[v]);
  23.  
  24. if(dfn[u] < low[v])
  25. {
  26. if(u > v)
  27. edge[ans ++] = make_pair(v, u);
  28. else
  29. edge[ans ++] = make_pair(u, v);
  30. }
  31. }
  32. }
  33.  
  34. void solve(int cases)
  35. {
  36. for(int i = ; i < N; ++ i)
  37. vec[i].clear();
  38.  
  39. int n;
  40. scanf("%d", &n);
  41.  
  42. for(int i = ; i < n; ++ i)
  43. {
  44. int a, b, c;
  45. scanf("%d (%d)", &a, &b);
  46. for(int j = ; j <= b; ++ j)
  47. {
  48. scanf("%d", &c);
  49. vec[a].push_back(c);
  50. }
  51. }
  52.  
  53. memset(dfn, -, sizeof(dfn));
  54. memset(low, -, sizeof(low));
  55.  
  56. ans = res = ;
  57. for(int i = ; i < n; ++ i)
  58. {
  59. if(dfn[i] == -)
  60. tarjan(i, -);
  61. }
  62. sort(edge, edge+ans);
  63. printf("Case %d:\n", cases);
  64. printf("%d critical links\n", ans);
  65. for(int i=; i<ans; ++ i)
  66. printf("%d - %d\n", edge[i].first, edge[i].second);
  67. }
  68.  
  69. int main()
  70. {
  71. int T;
  72. scanf("%d", &T);
  73. for(int i = ; i <= T; ++ i)
  74. solve(i);
  75. return ;
  76. }

Light OJ 1026 - Critical Links (图论-双向图tarjan求割边,桥)的更多相关文章

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

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

  2. 图论分支-倍增Tarjan求LCA

    LCA,最近公共祖先,这是树上最常用的算法之一,因为它可以求距离,也可以求路径等等 LCA有两种写法,一种是倍增思想,另一种是Tarjan求法,我们可以通过一道题来看一看, 题目描述 欢乐岛上有个非常 ...

  3. UVA 796 - Critical Links (求桥)

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

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

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

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

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

  6. Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖

    题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...

  7. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖

    标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...

  8. UVA 796 Critical Links (tarjan算法求割边)

    这是在kuangbin的题目里看到的,不得不吐槽一下,题目中居然没给出数据范围,还是我自己猜的-本来是一道挺裸的题,但是我wa了好多次,原因就是这里面有两个坑点,1重边特判,2输出时左边必须比右边小. ...

  9. Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖

    题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问题 ...

随机推荐

  1. JSBinding+SharpKit / 脚本加密(JSC或Bytecode,参考cocos2d-js)

    现在已经可以编译JSC,目前只能在 Windows 下编译 JSC.这个功能是从 cocos2d-js 抄过来的,他应该也支持在Mac编译,但是我没有试过. 菜单:JSB | Compile all ...

  2. 获取 .net framework 路径

    要获取当前程序所使用的.netframework路径: System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(); ...

  3. js 实现ActiveXObject("Scripting.Dictionary") 功能

    /* 字典 ActiveXObject("Scripting.Dictionary") 项目中用到的ActiveXObject("Scripting.Dictionary ...

  4. [MongoDB] 高可用架构方案

    一.缘由: 众所周知,Mongodb是在高速发展期,一些特性架构难免会发生变化.这里就总结下,我目前所知道的Mongodb 的高可用架构都有哪些.目前Mongodb版本3.2. 二.结构介绍: 1.R ...

  5. IntelliJ IDEA使用记录

    一.快捷键 1. 生成main方法 在编写代码的时候直接输入psv就会看到一个psvm的提示,此时点击tab键一个main方法就写好了. psvm 也就是public static void main ...

  6. mycat 插入语句导致的一个Dobbo问题

    2017-01-03 11:11:52.621 [com.alib] (): [DUBBO] Send heartbeat to remote channel /121.43.177.8:20192, ...

  7. Quartz.NET管理周期性任务

    Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...

  8. httpd的警告

    1. httpd: apr_sockaddr_info_get() failed for serv05 这个是因为httpd.conf文件没有定义ServerName,所以会用hostname来代替, ...

  9. 【知识点】业务连接服务(BCS)认证概念整理

    业务连接服务(BCS)认证概念整理 I. BDC认证模型 BDC服务支持两种认证模型:信任的子系统,模拟和代理. 在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得 ...

  10. jquery 监听radio选中,取值

    $(document).ready(function(){ $("input[name=discount]").each(function(){ $(this).click(fun ...