这是一篇口胡的题解。
题目
传送门 to luogu
思路
看一看,并不好搞,因为一条边的权值可能很大,但是
c 可以很小,小到足以让其权值的劣势不复存在。
突然想起了
CF76AGift,也是两种权值。可是人家那个是取
max 啊……
等等!我们的
c 是不是也该取
min 呢?猛回头,发现着实如此,因为每条边都是每次减少
1 ,所以 我们只需要操作
c 最小的一条边。
那么我们枚举
minc 即可。要是每次重新做一次
MST 就
O[nmα(n)] 了,咋整?
开动脑筋——没有说必须对
minc 进行操作。所以我们换一种说法:枚举我们需要对哪条边进行操作。此时我们只需要求,必须包含第
i 条边时,最小生成树的权值。
这跟
CF609EMinimumspanningtreeforeachedge一模一样了,可以做到
O(nlogn) 。