Ta上传的资源 (0)

预流推进算法是不同与增广路思想的另一种求最大流的算法,主要思想是把流从源点经过边,并通过调整顶点的标号来把流压入汇点。 该算法需要维护一个装有活跃顶点的标号,所谓活跃定点则是流出量小于流入量的顶点,则具有超额量,欲使该顶点平衡(流出==流入),则需要把该定点积累的流压出,被压入流的顶点只能是距离标号

对于LCA问题,有不少解法,这儿提供了tarjan算法,这是一种离线算法,读入所有输入然后一并处理,并且利用并查集的思想,从根节点开始DFS,对每一个DFS的节点,先把他的父亲节点指向本身,没访问完一个子节点,然后把该子节点的父亲指向该节点,当所有子节点DFS完毕后,将该节点标记为已访问,然后对和该

先利用prim算法求出最小生成树,然后通过往MST里加边来判断新生成的最小生成树是否具有最小的权值,POJ上TheUniqueMST(1679)题是要求判断最小生成树是否唯一,此题其实根本不用这样做,但是为了练习球次小生成树还是写了这样的代码,已用G++AC。

这道题的目的是求如去除某个点,能把图分成多少个子图,求这样子图的最大数。 其实就是求割点,然后看每个割点能把图分成多少个子图,当然原图不一定是连通的。 割点的求法各个书籍上都有,其实就是用DFS进行遍历。