5.31 CF R 949 (Div.2)
5.31 CF R 949 (Div.2)
Solve : A~D (4/6)
Rank : 99
Rating : \(1939+132=2071\)(\(1989+82=2071\))
Perf : 2317 | 2265
发挥评价:Normal
失误:
小失误是做 2B 时候没有注意,第一次错了之后就急了,接连交了 \(4\) 发罚时。
注意如果交上去 WA 了,想清楚、找清楚问题再交。
CF1981E
(me *2200)
给定 \(n\) 个区间 \([l_i,r_i]\) 和 \(n\) 个权值 \(a_i\),对任意 \(i≠j\),如 \(i,j\) 对应区间有交,则在点 \(i,j\) 间连一条权值 \(|a_i-a_j|\) 的边。
求最终图的 MST。
Solution:
这种根据某些信息生成边数很多的图然后求 MST 的题,一种经典 trick 就是:绝大多数边对于 MST 都是没用的。
考虑对区间做扫描线,则在任意时刻,位于集合内的所有点连成一条从小到大的链显然最优。
此时直接维护极差变化值并不正确,因为链中间还可能加入一些点,他们也要向集合中的点连边,产生额外代价。
那么向集合中哪个点连边?向离得最近的连。
正确的做法是:每加入一个点就向它在集合中的前驱后继连边,这样最后总边数是 \(O(n)\) 级别的,直接求 MST 即可。

浙公网安备 33010602011771号