FoxTheLinguist
作者:孙奕灿
关键词:最小树形图
问题简述
有 门课,每门课有 ,一开始你会每门课的 级,有 种训练,每种训练可以描述为 “在你学会了 的 之后,可以花 的时间学会 的 ”,当然,当你某门课学会了某个等级,那么这门课之前的等级都可以视为学会,问所有课到达 级的最短时间,或说明不可能.
数据范围
算法一
对每门课建立9个点, 分别对应其等级。我们把第 门课的第 个等级对应的点称为 。
然后对每次训练,找到对应的两个点 和 ,从 向 连一条权重为 的有向边。
然后对于每个 , 使其向 连一条边权为 的有向边。表示某门课学会了某个等级,那么这门课之前的等级都可以视为学会。
最后建立一个源点 ,向每门课的第 级别连一条边权为 的有向边。表示一开始你会所有课的 级水平.
然后问题就变成找一个 为根的外向树,使得边权和最小。
这是一个有向图的最小树形图的模型,可以使用经典的朱-刘算法在 的时间内解决。
时间复杂度 。