AISING2020E 题解

blog。没题解就来写一篇捏。


显然 \(L_i>R_i\) 的人都想去左边(记为 LFT 人),\(L_i<R_i\) 的人都想去右边(记为 RHT 人),\(L_i=R_i\) 的人可以摆烂。

(LFT 人与 RHT 人互相干扰,很难刻画。于是找性质。)

存在最优方案,使得所有 LFT 人都在 RHT 人的左边。证明:如果有 RHT 人在 LFT 人的左边,交换两人不会使答案更劣。

即:假设有 \(x\) 个 LFT 人,那么 \(1\sim x\) 的位置全是 LFT 人,\(x+1\sim N\) 的位置全是 RHT 人。

于是可以分开考虑 LFT 人与 RHT 人了!下文将只考虑 LFT 人。


先令初始答案为 \(\sum R_i\),然后再看有多少个 LFT 人能从 \(R_i\) 调整成 \(L_i\)。记 \(v_i=L_i-R_i\),只需解决如下问题:

如果第 \(i\) 个元素在前 \(K_i\) 个元素中,那么会获得 \(v_i\) 的价值。求出最大价值。

这个就是入门贪心了,按 \(v_i\) 排序后贪心放置即可,可以用 set / priority_queue 模拟。当然也可以反悔贪心(

code,时间复杂度 \(O(n\log n)\)

posted @ 2024-08-06 12:20  liangbowen  阅读(8)  评论(0编辑  收藏  举报