P3620 [APIO/CTSC 2007]数据备份

Solution

显然性质:最优解每组一定相邻。
考虑(D_i = a_i - a_{i - 1}),即选(K)(D_i),使得和最小且不相邻。

发现选了(D_i)就不能选(D_{i - 1},D_(i + 1}),只能在去掉两个后选最小配对,或者选择(D_{i - 1},D_{i + 1}),但是我们不能单独取(min)来选择,因为这会影响后面的决策,但是我们可以增加反悔机制,即先选(D_i),然后删除(D_{i - 1},D_i,D_{i + 1}),原位置加入(D_{i - 1} + D_{i + 1} - D_i),如果第二轮选了这玩意,相当于第一轮没选(D_i),前两轮选了(D_{i - 1},D_{i + 1}),每次选择最小的,进行(K)轮,用链表和最小堆维护。

原文地址:https://www.cnblogs.com/luyiming123blog/p/14530987.html