
tarjan
文章平均质量分 65
奔跑的蜗new
这个作者很懒,什么都没留下…
展开
-
POJ3694(求割边+LCA)
题意:给出一副图,有Q个询问,每次询问添加一条边,问添加该边后还有多少个割边。题解:先用tarjan缩点求出总的割变数,每次询问后再进行缩点,缩点过程中计算减少的割边数。代码:#include <stdio.h> #include <algorithm> #include <vector> #include <string.h> using name...原创 2018-05-01 22:24:50 · 251 阅读 · 0 评论 -
POJ3177求边双联通分量
参考博客: jumping_frog poj 3177 Redundant Paths(边双连通分量+缩点) 链接:http://poj.org/problem?id=3177 题意:有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走。现已有m条路,求至少要新建多少条路,使得任何两个牧场之间至少有两条独立的路。两条独立的路是指:没有公共边的路,但可以经过同...转载 2018-05-02 21:14:01 · 158 阅读 · 0 评论 -
hdu4612(求树的直径+重边判断)
给出一幅无向图,问加一条边后,最少剩多少个桥。思路:边双联通分量缩点,求出缩点后的桥个数,最优的加边方法就是在树的直径上加边,所以答案就是缩点后桥的个数,减去树的直径。这题有重边,两个点的多条边认为是不同的,所以有重边的边一定不是桥,在tarjan的时候就要判断是不是重边了。求树直径的方法:任意找一点,bfs找到距离最远的点p,再从p点bfs一次,找到距离最远的点q,p-q就是直径了。网上的证明:...原创 2018-05-05 21:48:22 · 330 阅读 · 0 评论 -
hdu4635(差一强联通分量)
题意:给一个有向图,问最多加几条边使图不能缩成一个点,也就是再加一条边图就能缩成一点了。所以我叫它“差一强连通分量”。思路:缩点,记录每个点包含的结点数,找到缩点后入度或者出度为0,且包含结点最少的那个缩点,将整个图分成两部分,一部分是找出的这个点,另一部分是剩下所有点,容易知道,把两部分各自加边成完全图,整幅图仍然不能缩成一个点,然后在两部分的任意两个点建单向变,整幅图就满足题意了,此时再加一条...原创 2018-05-06 21:00:17 · 244 阅读 · 0 评论 -
POJ1236(tarjan入门)
题意:有n所学校需要信息交流,每个学校有一个信息下发列表,表示这个学校可以把信息传递给列表里的学校,问开始至少需要几个学校发出信息才能使所以学校都接收信息,如果不能完成问最少要往信息列表里添加多少条信息 第一问就是缩点然后求入度为0的点的个数, 第二问相当于求补多少条边能使整个图联通, 补的边数是入度为0和出度为0的点数中大的那个(挺好理解的就不解释了) #include <cstdi...原创 2018-07-25 00:37:14 · 211 阅读 · 0 评论 -
hdu5934(tarjan缩点)
一堆炸药桶放在平面上,每个炸药爆炸范围不同,点燃每个炸药花费不同,求引爆所以炸药的最小花费 枚举任意两个炸药桶建立单向边,进行缩点,被缩成同一点的几个炸药桶说明点燃这几个炸药桶的任意一个都能把这一片都引爆。 缩完点后,建立一个新的图,并把每个被缩点的炸药桶的最小化费来代替这个点的花费,最后把所有入度为0的点的花费加起来就行 #include <cstdio> #include ...原创 2018-07-31 20:47:29 · 351 阅读 · 0 评论