DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

橙子!

返回题目

题解

子任务 1:枚举第一个人购买的橙子集合。对每个大小为 KKK 的集合,直接计算满意度并取最大值。时间复杂度为 O(N2N)O(N2^N)O(N2N),空间复杂度为 O(N)O(N)O(N)。

完整解法:假设第二个人买下所有橙子,满意度为 ∑i=1Nbi\sum_{i=1}^N b_i∑i=1N​bi​。将第 iii 个橙子改由第一个人购买,满意度的变化量为 ai−bia_i-b_iai​−bi​。

令 ci=ai−bic_i=a_i-b_ici​=ai​−bi​。问题变为恰好选择 个差值,使其总和最大。将差值降序排序,选择最大的 个。若某个未选值大于某个已选值,交换它们就能增大总和,因此这种选择是最优的。相等的值可以任意选择。

设排序后 c1≥c2≥⋯≥cNc_1\geq c_2\geq\cdots\geq c_Nc1​≥c2​≥⋯≥c,答案为

∑i=1Nbi+∑i=1Kci\sum_{i=1}^N b_i+\sum_{i=1}^K c_ii=1∑N​bi​+

必须恰好选择 KKK 个橙子,即使某些被选中的差值为负数,也不能跳过。

每个用例的时间复杂度为 O(Nlog⁡N)O(N\log N)O(NlogN),空间复杂度为 O(N)O(N)O(N)。答案及计算中的和的绝对值不超过 2×10142\times10^{14}2×1014,差值的绝对值不超过 。应使用 64 位整数存储总和。

Solution written by GPT

KK
K
KKK
N
​
i=1
∑
K
​
ci​
109−110^9-1109−1