强联通图
文章平均质量分 75
include-LSS
我想了很久还是不知道这里要写什么 ...
展开
-
hdu3861 The King’s Problem (强连通+最小路径覆盖)
题意:题目的意思很清晰,对于一个有向图,将N个点划分成最少的集合个数,同时满足俩个条件:首先,最小路径覆盖=总节点数-最大匹配数。这个应该已经是路人皆知了。所谓最小路径覆盖,是指在一个有向图中,找出最少的几条路径,用它们来覆盖全图1) 任意俩点,若互相可达,则必须在同一个集合中2)属于同一个集合的任意俩个点对(u,v),至少存在一条路径,使得v对于u 可原创 2013-10-11 19:59:17 · 656 阅读 · 0 评论 -
hdu 3594 (求强连通图+判断没条边是否只属于一个环)
题目大意:给一个有向图,问该图是否满足以下两个条件:1.它是一个强连通图。2.它的每一条边仅属于一个环。如果满足输出YES,否则输出NO1. 求一遍强连通分量,只要强连通数量=1 ,就原创 2014-09-22 20:55:34 · 732 阅读 · 0 评论 -
HDU 2767 至少添加都是边成强连通图
题目大意:给定一张有向图,问最少添加几条边使得有向图成为一个强连通图。跑一边原创 2014-09-12 22:10:08 · 485 阅读 · 0 评论 -
hdu 2242(边双联通分量)
众所周知,HDU的考研教室是没有空调的,于是就苦了不少不去图书馆的考研仔们。Lele也是其中一个。而某教室旁边又摆着两个未装上的空调,更是引起人们无限YY。一个炎热的下午,Lele照例在教室睡觉的时候,竟然做起了空调教室的美梦。Lele梦到学校某天终于大发慈悲给某个教室安上了一个空调。而且建造了了M条通气管道,让整个教学楼的全部教室都直接或间接和空调教室连通上,构成了教室群,于是,原创 2014-09-23 22:06:26 · 455 阅读 · 0 评论 -
无向图和有向图的tarjan
// 有向图tarjan void tarjan(int u) { int j,v; dfn[u]=low[u]=cnt++; vis[u]=1; S.push(u); for(j=head[u];j!=-1;j=edge[j].next) { v=edge[j].to; if(!原创 2014-09-23 22:18:17 · 738 阅读 · 0 评论 -
hdu 3849(双联通求桥)
题目意思:给你n,m表示一个图的n个点,m条边。 下面m行为 x ,y即x和y之间有条边,求割边,2个坑点:若图不连通输出0;若有多条割边按输入先后顺序输出,而且x,y顺序也和输入时一致原创 2014-09-26 20:41:11 · 569 阅读 · 0 评论 -
hdu 2460(边双连通分量+LCA)
题意:给你一个无向连通图,让后给出每给q条要添加的边,输出添加每一条边之后图中还剩下多少桥首先我们可以通过Tarjan求边双连通分量,对于边(u,v),如果满足low[v]>dfn[u],则为桥,这样我们就可以知道图中桥的数目了。对于每一次query,可以考虑dfs树,树边肯定是桥,然后连上u,v这条边之后,就会形成一个环,这样环内的边就不是割边了,所以只要找到u,v的LCA,把这个路径上的桥原创 2014-09-24 22:03:17 · 588 阅读 · 0 评论 -
hdu 1827 强连通分量+判断入度
Problem DescriptionTo see a World in a Grain of Sand And a Heaven in a Wild Flower, Hold Infinity in the palm of your hand And Eternity in an hour. —— William Blake听说原创 2014-09-16 20:05:14 · 479 阅读 · 0 评论 -
第八届省赛F题 (枚举+最小生成树)
DescriptionA kingdom has n cities numbered 1 to n, and some bidirectional roads connecting cities. The capital is always city 1.After a war, all the roads of the kingdom are destroyed. The kin原创 2014-10-06 19:09:16 · 762 阅读 · 0 评论 -
hdu 4005 边双联通+LCA
题意:有一幅图,现在要加一条边,加边之后要你删除一条边,使图不连通,费用为边的费用,要你求的是删除的边的最小值的最大值(每次都可以删除一条边,选最小的删除,这些最小中的最大就为答案)首先要进行缩点,把图缩为一棵树,因此,加入一条边后图就会存在一个环,环中的任何一条边删除后都不会导致图不连通之后找一条最小的边,可以说这条边肯定是在加边之后的连通块里的,因为如果不在连通块里,那就直接可以把原创 2014-10-16 20:04:20 · 543 阅读 · 0 评论 -
poj 1236 (强连通缩点入度问题)
题目大意:N(2解题思路:1.先求强连通分支,然后把图缩小成为一个有向无环图;2.求出这个有向无环图中,入度为0的点的个数为a,出度为0的点的个数为b;3.第一个问题的答案就是a,第二个问题的答案为max{a,b};4.最恶心的地方:当一开始这个图就是一个强连通图的时候,第二问题的答案为0。#include#include#include#原创 2014-11-30 19:30:57 · 571 阅读 · 0 评论 -
poj 2553 (强连通缩点出度为0)
题意 : 一个有向图 , 如果一个点u能够达到点v, v也能到达u, 则u是sink点 ; 找出所有的sink ,按顺序输入 ; 注意 如果点u能够到达的所有点中,有一个点不能到达u , u就不算是sink ,必须所有的点都能够达到u ; 第二组数据 : 1 --> 2 1 能到达的点事 1 , 2 但2不能到达1原创 2014-12-01 20:08:41 · 598 阅读 · 0 评论 -
poj 2186 (强连通缩点传递关系)
题意:有N头牛 每一头牛都梦想着成为popular cow,(但这是不可能滴) 有m组仰慕的关系,仰慕有传递性比如说A觉得B是popular and B thinks C is popular, then A thinks C is popalur also;现在问有多少头牛是会被其他牛都仰慕。思路:求强连通分量,缩成点 点内的头当然是相互仰慕的咯!! 然后求新的图 的出度 出原创 2014-12-02 19:51:59 · 650 阅读 · 0 评论 -
hdu 1268(判断图是否强联通)
Problem Description为了训练小希的方向感,Gardon建立了一座大城堡,里面有N个房间(N Input输入包含多组数据,输入的第一行有两个数:N和M,接下来的M行每行有两个数a和b,表示了一条通道可以从A房间来到B房间。文件最后以两个0结束。 Output对于输入的每组数据,如果任意两个房间都是相互连接的,输原创 2014-09-09 22:14:19 · 731 阅读 · 0 评论 -
zoj 3811区域赛网赛(BFS+并查集)
题意:有N个城市,M条路。有K个传感器,分布在给定的K个城市中。传感器只会在第一次到达该城市时触发。现在给出传感器触发的先后顺序,问是否有方案遍历完所有的城市。原创 2014-09-09 19:11:40 · 354 阅读 · 0 评论 -
hdu 3639(强连通分量+dfs)
题目大意 有 n(2需要注意的是 support 是可以传递的,比如:A support B && B support C,那么,C 得到的 support 是 2 做法分析 可以想到的是,枚举每个人得到的 support 的个数,这个做法是 o(n^2) 的。在 50 组数据的情况下,想要在 2s 内出结果,有点不现实思来想去,这道题貌似没有什么好的做法那么就原创 2014-09-19 20:44:56 · 470 阅读 · 0 评论 -
区域赛 (求割桥)
Sample Input3 31 2 72 3 43 1 43 21 2 72 3 40 0 Sample Output-14题意: n个岛用m条桥连接,要破坏一座桥,使图分开 ;每座桥上有敌方士兵,炸桥的士兵不能少于要敌方士兵 求最少要派多少个士兵,即求割桥。选的割桥中,士兵最少的就是结果; 有几种情况: 1.当图不联通,为0;原创 2013-09-15 17:16:26 · 614 阅读 · 0 评论 -
小笔记 ~~ 割桥
割边割边:如果在图G中删去一条边e后,图G的连通分支数增加,即W(G-e)>W(G),则称边u为G的桥,又称割边或关节边。 性质: 对于一条边,v是u的孩子如果儿子及儿子的子孙均没有指向u的祖先的后向边时,是割边。(LOW[v]>DFN[u])代码: 1 void CutEdge(int cur,int par) 2 { dfn[cur]=low[cu原创 2013-09-29 19:35:41 · 637 阅读 · 0 评论 -
hdu 4587 (求强连通分量)
Sample Input4 50 11 22 33 00 2 Sample Output2题意 : n个点,m条边的无向图 。这题就是去掉两个点,问可以最多留下多少个连通分支。枚举第一个去掉的点。然后就是普通的求割点的过程来实现去掉一个点可以增加多少个连通块。要注意的是 : 普通的求割点,图的连通分量个数是 add_sum[u]+1 ;原创 2013-09-04 19:43:43 · 672 阅读 · 0 评论 -
hdu 4685 (最大匹配+强连通分量)
Sample Input24 42 1 22 1 22 2 32 3 41 22 1 2 Sample OutputCase #1:2 1 22 1 21 31 4Case #2:2 1 2题意:有n个王子和m个公主,每个王子都喜欢若干个公主,王子只能和他喜欢的公主结婚,而公主可以和任一个王子结婚。给出每个王子喜欢的公主,这样可原创 2013-08-16 20:22:41 · 941 阅读 · 0 评论 -
Wormholes (判断负环)
In the year 2163, wormholes were discovered. A wormhole is a subspace tunnel through space and time connecting two star systems. Wormholes have a few peculiar properties:Wormholes are one-way on原创 2013-11-03 18:49:10 · 712 阅读 · 0 评论 -
poj 3694 Network (强联通分量缩点+割桥+lca查询)
B - Network Time Limit:5000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3694 Description A network administrator manages a large network. T原创 2013-11-13 20:34:28 · 972 阅读 · 0 评论 -
hdu 3313 (最短路)
题意: 给一个图,给起点终点,S,T; 如果删除一个点,使得无法从S到T,则这个点事可删点,问有多少个可删点 ; 据说可以用最小割写,不过还是来个朴素的A题解法 ;首先,我们先找到一条从S到T的路径,当然可以直接找最短路,至此我们可以知道,除了这条路上的其他点,都不是可删点了,因为就算你删除了那些点,也照样可以通过这条路到达T; 然后,可删点就是这条路上的某些点了;我们可以在这条路上从起点原创 2013-12-03 18:49:16 · 836 阅读 · 0 评论 -
有关割点的求法
何为割点?也就是题目中的关键点。在一个无向图中,去掉一个点,这个无向图会变成多个子图,那么这个点就叫做割点同理,割边也是如此,如果去掉一条边,能让无向图变成多个子图,那么这条边叫做割边,所谓的桥。 那么tarjan是如何求的割点的呢?如果u为割点,当且仅当满足下面的1/21、如果u为树根,那么u必须有多于1棵子树2、如果u不为树根,那么(u,v)为树原创 2014-02-27 20:58:29 · 873 阅读 · 0 评论 -
求割点个数
判断一个点是否是割点的两个条件:1、如果一个点v是根结点并且它的子女个数大于等于2 则v是割点。因为有大于等于2个子树,删除根后,剩下的图才会分成至少两半 ;2。如果点v不是根结点,并且存在她的一个子女u,使得low[u]>=dfn[v],则v是割点void tarjan(int u,root) { dnf[u]=low[u]=++dep ; vist[u原创 2014-02-27 21:32:30 · 836 阅读 · 0 评论 -
蓝桥杯 危险系数 (求两点间割点个数)
问题描述抗日战争时期,冀中平原的地道战曾发挥重要作用。地道的多个站点间有通道连接,形成了庞大的网络。但也有隐患,当敌人发现了某个站点后,其它站点间可能因此会失去联系。我们来定义一个危险系数DF(x,y):对于两个站点x和y (x != y), 如果能找到一个站点z,当z被敌人破坏后,x和y不连通,那么我们称z为关于x,y的关键点。相应的,对于任意一对站点x和y,危险系数DF(x,y原创 2014-02-28 21:09:55 · 2791 阅读 · 2 评论 -
hdu 3861 (强连通分量+最小路径覆盖)题意有些怪
题目大意:一个有向图,让你按规则划分区域,要求划分的区域数最少。规则如下:1、有边u到v以及有边v到u,则u,v必须划分到同一个区域内。2、一个区域内的两点至少要有一方能到达另一方。3、一个点只能划分到一个区域内。解题思路:根据规则1可知必然要对强连通分量进行缩点,缩点后变成了一个弱连通图。根据规则2、3可知即是要求图的最小路径覆盖。定义:最小路径覆盖:在图中找一些路径(路径数原创 2014-09-18 20:43:01 · 482 阅读 · 0 评论 -
poj 2375 (强连通分量缩点max(入度,出度))
题意:给定一个滑雪场,每个点能向周围4个点高度小于等于这个点的点滑,现在要建电缆,使得任意两点都有路径互相可达,问最少需要几条电缆思路:强连通缩点,每个点就是一个点,能走的建边,缩点后找入度出度为0的个数的最大值就是答案,注意一开始就强连通了答案应该是0#include#include#include#include#include#include#incl原创 2014-12-03 21:13:03 · 737 阅读 · 0 评论