Description link Solution 可以发现题目在模拟 Prim 算法求最大生成树的过程,树边故答案与起点 \(C\) 无关. 先把所有区间离散化,注意对于一个区间 \([l,r]\),要把 \(l,l+1,r\) 三个位置提出来离散化,作为所有新区间的左端点,这样总共只有 \(O(n)\) 个新区间.提 \(l+1\) 的原因待会再说. 则从起点 \(C\) 出发,寻找所有覆盖 \(C\) 的区间,将这个区间连向的另一个区间扔进大根堆,键值为边权,并删除这个区间.每次取出大根堆…