https://vjudge.net/problem/UVALive-5135 题意:在一个无向图上选择尽量少的点涂黑,使得任意删除一个点后,每个连通分量至少有一个黑点. 思路: 首先dfs遍历求出割顶和双连通分量,并把每个连通分量保存下来. 接下来分情况讨论: 如果一个点—双连通分量只有一个割顶,在该分量中必须将一个非割顶涂黑. 如果一个点—双连通分量有2个及以上的割顶,不需要涂黑. 如果整个图没有割顶,则至少需要涂黑两个点.(因为有可能删除的就是涂黑的点) #include<iostream…
题意 有一座地下稀有金属矿由n条隧道和一些连接点组成,其中每条隧道连接两个连接点.任意两个连接点之间最多只有一条隧道.为了降低矿工的危险,你的任务是在一些连接点处安装太平井和相应的逃生装置,使得不管哪个连接点倒塌,不在此连接点的多有矿工都能到达太平井逃生.为节约成本,你应当在尽量少的连接点安装太平井.还需要计算出当太平井的数目最小时的安装方案总数. 分析 1对于一个双连通分量,如果它有两个以上的割顶,则不需要建太平井.如果只有一个割顶,则任选一个非割顶的点建太平井. 2若整个图无割顶,则任涂两个…
题目链接:http://vjudge.net/contest/141787#problem/B 白书P318 题目大意:有N个矿井 ,由一些隧道连接起来,现在要修建尽量少的安全通道,使得无论哪里发生事故,所有人均能逃出,求建的最少的安全通道数量和方案数. 分情况讨论: 在一个无向图上选择尽量少的点涂黑,是的任意删除一个点后,每个连通分量都有一个黑点. 第一种情况:点-双连通里面没有割顶,那么至少要涂两个. 第二种情况:有一个割顶,那么割顶一定是不要涂黑的.涂黑了割顶,割顶删掉,那么在那个点-双连…
Knights of the Round Table Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 9169   Accepted: 2960 Description Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in distress, and drinking with the othe…
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho从约翰家回到学校时,网络所的老师又找到了小Hi和小Ho. 老师告诉小Hi和小Ho:之前的分组出了点问题,当服务器(上次是连接)发生宕机的时候,在同一组的服务器有可能连接不上,所以他们希望重新进行一次分组.这一次老师希望对连接进行分组,并把一个组内的所有连接关联的服务器也视为这个组内的服务器(注意一个服务器可能属于多个组). 这一次的条件是对于同一个组满足:当组内任意一个服务器宕机之后,不会影响组内其他服务…
#1184 : 连通性二·边的双连通分量 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在基本的网络搭建完成后,学校为了方便管理还需要对所有的服务器进行编组,网络所的老师找到了小Hi和小Ho,希望他俩帮忙. 老师告诉小Hi和小Ho:根据现在网络的情况,我们要将服务器进行分组,对于同一个组的服务器,应当满足:当组内任意一个连接断开之后,不会影响组内服务器的连通性.在满足以上条件下,每个组内的服务器数量越多越好. 比如下面这个例子,一共有6个服务器和7条连接: 其中包…
给一个无向图,问至少加入多少条边能够使图变成双连通图(随意两点之间至少有两条不同的路(边不同)). 图中的双连通分量不用管,所以缩点之后建新的无向无环图. 这样,题目问题等效于,把新图中度数为1的点相互连到图里面形成环 如果这种点有sum个,那么至少须要加入(sum+1)/2 条边. 下面,基本上就是求边双连通分量模板. #include <iostream> #include <cstring> #include <string> #include <cstdi…
概念: 双连通分量有点双连通分量和边双连通分量两种.若一个无向图中的去掉任意一个节点(一条边)都不会改变此图的连通性,即不存在割点(桥),则称作点(边)双连通图. 一个无向图中的每一个极大点(边)双连通子图称作此无向图的点(边)双连通分量.求双连通分量可用Tarjan算法.--百度百科 Tip:先学一下tarjan算法以及求割点割边的算法之后,再看会比较好理解一些. 点双连通和边双连通 连通的概念:在无向图中,所有点能互相到达 连通分量:互相联通的子图 点双连通:删掉一个点之后,图仍联通 边双连…
历时好几天,终于完工了! 支持无向图四种功能:1.割点的求解 2.割边的求解 3.点双连通分量的求解 4.边双连通分量的求解 全部支持重边!!!!全部支持重边!!!!全部支持重边!!!! 测试数据: 10 111 53 54 52 42 34 66 86 77 88 108 9 /* By:ZUFE_ZZT 该模板经过多次修改与研究,修正了很多错误,增加了很多功能. 无向图,完全支持重边!!完全支持重边!! [功能如下] 1.求割点的编号,以及去掉割点有多少连通分量 2.求点双连通分量 3.求割…
图论算法-Tarjan模板 [缩点:割顶:双连通分量] 为小伙伴们总结的Tarjan三大算法 Tarjan缩点(求强连通分量) int n; int low[100010],dfn[100010]; bool ins[100010]; int col[100010];//记录每个点所属强连通分量(即染色) vector<int> map[100010]; stack<int> st; int tot;//时间戳 int colnum;//记录强连通分量个数 void tarjan(…