UVa 11747 Heavy Cycle Edges(最小生成树)

题意:给一个图,按照找最小生成树的方法,找到环并输出环中其中最大的边。 思路:一样是用Kruskal算法,只不过加边的时候,判断边上两点在不在一个连通集合中,如果在,则说明加上边得到了环,输出这条边。 #include #include #include #include #inclu...

2015-11-23 17:08:35

阅读数:264

评论数:0

HDU 2767 Proving Equivalences(强连通缩点)

题意:给出一个有向图,不一定连通,问至少加多少有向边可以使其变成连通的。 思路:先跑一遍Tarjan并进行缩点。缩完点后,得到一个DAG,设入度为0的点数位inCnt,出度为0的点数为outCnt,则答案为max(inCnt, outCnt)。注意如果跑完一遍图本身就是强连通的,则直接输出0。 下...

2015-11-22 00:22:51

阅读数:307

评论数:0

HDU 1811 Rank of Tetris (并查集+拓扑排序)

题意:给出不同人的一些相对大小信息,问能否得到一个确定的rank。 思路:很显然的拓扑排序,只不过这里有等于的情况。由于题意已经说明等于的情况的话,比较两人的人品值也即编号,所以等于的情况是确定的,只需用并查集处理一下。那么剩下的就是拓扑排序了。我们用一个cnt值记录已排序的人数,最后与总人数n...

2015-11-16 17:10:17

阅读数:274

评论数:0

POJ 1236 Network of Schools(强连通分量缩点)

题意:n个学校有向图,得到软件的学校可以根据路径发放给其他学校。问1:至少给几个学校发放。问2:给任意一个学校发放,至少添几条边可发放至所有学校。 显然要用Tarjan先找到所有的强连通分量,然后缩点建树。建树之后对每个缩点记其入度出度。显然,对于问题1,只要向入度为0的点发放软件就可满足条件。 ...

2015-09-10 21:27:05

阅读数:286

评论数:0

HDU 2460 Network(Tarjan求解桥+LCA)

题意:求出桥数,然后有Q次填边,每次填边后输出剩余的桥数。 一开始想的是先求解所有的桥,然后双连通缩点建树,再添边求解桥。。感觉很麻烦。。后来发现不用这么麻烦,Tarjan搜索一次后,记录到了所有的dfn值和fa值,即所有点的访问次序以及父亲值,那么借用LCA的思想,图中的边无非是树边与回退边,对...

2015-09-10 20:05:05

阅读数:315

评论数:0

POJ 1966 Cable TV Network(顶点连通度)

题意:给一个无向图,求至少去掉多少个点可以将其变成不连通的。 一道求无向图点割集的入门题。 先看一下点割集和顶点连通度的定义: 点连通度:一个具有N个点的图G中,在去掉任意k-1个顶点后(1 独立轨:A,B是图G(有向无向均可)的两个顶点,我们称为从A到B的两两无公共内顶点的轨为独立轨,其最大条数...

2015-09-09 22:39:09

阅读数:262

评论数:0

HDU 3405 World Islands(最小生成树)

水题。 少一个点的最小生成树,数据很小,n 代码: // Header. #include #include #include #include #include #include #include #include #include #include #include #...

2015-09-09 10:30:12

阅读数:249

评论数:0

POJ 1523 无向图求割点

无向图求割点的问题,仍然是用到Tarjan算法进行深搜,深搜过程中不断更新每个节点的dfn值和low值,对一个父亲节点u和其子节点v,每次搜索完其一个子节点,更新其low值,即节点u能通过一条其后代的组成的路径和回退边所能到达的最小的dfn值。如果可以到达的dfn值比u小,说明u可以通过其后代组成...

2015-09-05 11:20:46

阅读数:347

评论数:0

POJ 3352 双连通缩点以及求桥和边双连通分量

传送门:http://poj.org/problem?id=3352 在用Tarjan算法求解连通分量时,通过dfs过程记录每个节点的访问次序,记作dfsnum,存入dfn数组,以及记录一个点可以通过边和回退边可以达到的最小的dfsnum,存入low数组。那么显然,如果对于一个节点u和它的孩子节...

2015-09-05 00:34:08

阅读数:391

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭