连通分量
文章平均质量分 92
alpc_qleonardo
这个作者很懒,什么都没留下…
展开
-
HDU 3861 The King’s Problem(tarjan缩点+最小路径覆盖ISAP)
一道裸的图论题,算是长点见识。 首先相互连通的点要在同一部分,相当于缩点,用tarjan求连通分量缩点即可。 缩点之后就是一个DAG,在DAG上把所有的点分成最少的部分,然后每部分任意两点是单连通的。这就相当于是用最少的路径把所有的点给覆盖,最小路径覆盖问题。 关于DAG的最小路径覆盖问题,可以用二分图匹配的方法,把每一个点i分为i和i'。然后假设有边u->v,那么连边u->v'。然后跑二分图匹配,用n-最大匹配就是最小路径覆盖。 但是原创 2017-09-02 23:25:11 · 408 阅读 · 0 评论 -
2-SAT 问题回顾(CSU 1844)
CSU 1844:Palindromic DNA (2010 Southwestern European Regional Contest)原创 2017-03-30 17:27:15 · 276 阅读 · 0 评论 -
CodeForces 915D Almost Acyclic Graph(拓扑排序)
这题居然是topsort…… 大致题意就是给你一个图,然后最短删除一条边,问你是否能够把这个图变成一个DAG有向无环图。 暴力的话枚举所有的边,然后再遍历图,复杂度为O(M*(N+M))果断超时。自己画出图来找一些环的个数以及相互之间的重边的关系,还是没有能够找到一个很好的规律。另一个方法就是,找出一个的环,然后标记环上的边,枚举这些边删掉,看是否还有环。但是这个操作起来不好处理,本身求具体的环就要用tarjan,然后还要在上面修改标记下环上的边…… 正解是,原创 2018-02-12 15:31:31 · 442 阅读 · 0 评论 -
CSU 2022/2015 Artwork(并查集+逆向思维)
大致题意,每次可以把两个同行或者同列的点之间涂黑,然后每进行一次操作统计一次图的连通分量。 一道套路题,之前貌似做过两次。直接考虑逆向思维,从最后的分隔状态开始,每次往前减少一个操作,判断连通分量的减少情况。用权值表示每个地点被覆盖的次数,一旦出现覆盖次数变为0,即要进行更新,更新时首先增加一个连通分量,表示其本身,其次在合并四个方向,每进行一次合并减少一个连通分量。具体见代码(现场代码略丑):原创 2018-04-03 22:45:06 · 728 阅读 · 0 评论 -
HDU 5809 Ants (KD_Tree + 并查集)
大致题意:有很n个蚂蚁窝,蚂蚁窝里面的蚂蚁运动的时候有一个规律,就是每次往距离它最近的蚂蚁窝走。当两对蚂蚁窝距离相同时,坐标小的那个更近。而且蚂蚁运动严格是走直线,现在有q个询问,每个询问给出两个蚂蚁窝的编号,问这两个蚂蚁窝的蚂蚁是否能够相遇。 首先,处理这个距离最近的蚂蚁窝,显然是用KD树解决。对于给出的二维坐标,建立KD树,对于每一个点求一次最近点。其次,是判断能否相遇,这个也很容易看出就是判断两个点是否在统一连通分量里面。这个用不着tarjan,直接用并查集维护即可。 方法原创 2018-07-08 16:28:51 · 430 阅读 · 0 评论 -
ZOJ 4097 Rescue the Princess(边双连通分量缩点 + LCA)
大致题意:给你一个可以有重边和自环的n个点m条边的无向图,给你q个询问。每个询问告诉你公主的位置和两个骑士的位置。现在骑士要去救公主,问是否存在从两个骑士出发点到公主的边不相交路径。我已经标出来了,是边不相交,而不是点不相交。然后这是一个无向图,所以我们容易想到的第一件事情就是要进行缩点。关于缩点,这里用到的是边双连通分量的定义,至于点双连通分量、边双连通分量和连通分量的区...原创 2019-04-18 00:07:01 · 349 阅读 · 0 评论 -
tarjan连通分量总结
这个东西怎么说呢,感觉很丢脸啊,高中就学过的东西,现在作为一个打了两年比赛的ACMer,居然对这个东西不太熟。tarjan算法我就不说了。连通分量的概念我也不说了。现在看来tarjan主要用于三个方面。首先按照无向图和有向图去分类。在有向图里面,由于图是有向的,所以可以研究的东西没有那么多。如果能够找到从a到b的路径,也能够找到从b到a的路径,那么这两个点就在同一个强连通分量里面。求...原创 2019-04-18 20:51:45 · 298 阅读 · 0 评论