最小树形图
有向图的最小生成树。找一个根节点
u
,选择一些边,使任意两点之间有且仅有一条边,且
- 朱-刘算法。
- 给每个点(除根)选择一条权值最小的入边。若不存在环,直接输出答案;反之对于每个环,添加一条指向这个环中一个点
u
的边,
u 则与它的前驱断开。
hdu 4966 GGS-DDU
Description
- 总共有
n
门课,每门课有一个最高等级
ai ,一开始每门都是等级 0 。 - 有
m 个提升班,每个班级有 a,level1,b,level2,w ,表示只有第 a 门课程在level1 及以上时才能上,花费代价 w ,可以讲第b 门课程提升到 level2 等级。 - 现在问将所有的课程提升到最高等级需要付出的最小代价,若无法达到则输出 −1 。
Solution
先将所有 level 离散化,将每门课的等级拆开。连边如下。
- 每门课的
i
等级向
i−1 等级连边。 - (a,level1) 向 (b,level2) 连边。
最小树形图就好了。
最小树形图就没有什么可讲的了,挺简单的,应用也比较局限。
LCA
这是我用错误的板子A了数十道题的一种算法
cdoj 92 Journey
Description
- 给你一棵树,然后在树中加入了一条边
- 然后 q 次询问,问你加入了这条边之后询问的两个点距离变短了多少。
Solution
这个就是仙人掌最短路的弱化板。
写过很多次仙人掌最短路了,就不再多说。
tarjan
我5分钟写出的东西还说个鬼的原理
poj 1144 Network
Description
- 一个电话线公司(简称
TLC )正在建立一个新的电话线缆网络。 - 他们连接了若干个地点分别从
1
到
N 编号。没有两个地点有相同的号码。 - 这些线是双向的并且能使两个地点保持通讯。每个地点都有一个电话交换机。
- 从每个地点都能通过线缆到达其他任意的地点,然而它并不需要直接连接,它可以通过若干个交换机来到达目的地。
- 有时候某个地点供电出问题时,交换机就会停止工作。有时它还会导致一些其它的地点不能互相通讯。在这种情况下我们会称这个地点(错误发生的地方)为 critical 。
- 现在工作人员想要写一个程序找到所有 critical 地点的数量。帮帮他们。
Solution
其实也没有什么可以讲的, tarjan 求割点就完了。
次短路
更新的时候当前最短变次短,优势是可以记录路径数量。