1 条题解
-
0
题目大意
有两支队伍,每队 名选手,每位选手有一个实力值。比赛规则为:
- 双方选手按 到 的顺序一一对战。
- 每场比赛:实力值高者获胜(得 分),平局则双方各得 分,败者得 分。
- 对方出场顺序未知,但完全随机。
- 要求计算:浙江队在 最好情况 与 最坏情况 下分别能获得的总分。
问题分析
1. 关键性质
- 实力值的大小关系直接决定胜负:实力强必胜实力弱,实力相等则平局。
- 对方顺序未知,意味着我们可以假设对方会采取 对我方最有利 或 对我方最不利 的顺序。
- 这本质是一个 最优匹配问题:将我方 名选手与对方 名选手进行一一匹配,使得我方得分最高(或最低)。
2. 最好情况(最大得分)
策略:采用类似“田忌赛马”的贪心策略:
- 将我方选手实力值 与对方选手实力值 分别 从小到大排序。
- 使用双指针,比较当前队列最弱与最强的匹配:
- 如果我方最弱能战胜对方最弱 → 直接取胜(得 分),双方去掉最弱。
- 如果我方最弱弱于对方最弱 → 让我方最弱与对方最强对战(输,得 分),消耗对方强者。
- 如果我方最弱与对方最弱平局:
- 如果我方最强能战胜对方最强 → 用最强赢最强(得 分)。
- 否则 → 让我方最弱与对方最强平局(得 分)。
这样能保证在对方任意顺序下,我方采取最优匹配时得分最大化。
3. 最坏情况(最小得分)
关键转化:
- 每场比赛双方得分总和固定为 分(因为胜/平时总分都是 )。
- 因此有: [ \text{浙江队得分} + \text{对手得分} = 2n ]
- 浙江队得分最小 ⇔ 对手得分最大。
- 所以,最坏情况 = 。
计算方法:
- 将我方视为“对手”,对方视为“浙江队”,计算对方的最大得分 。
- 则我方最坏得分 = 。
算法总结
-
最好情况得分:
使用贪心法计算 ,其中 为浙江队实力值数组, 为对手实力值数组。 -
最坏情况得分:
计算 得到对手最大得分 ,则浙江队最坏得分 = 。
举例验证
样例 1
,,
- 最好情况: 对 匹配可得 分(如 对 胜, 对 负)。
- 最坏情况: 对 匹配可得 分(全胜),则 得分 = 。
输出:2 0
样例 2
, 全为 , 全为
- 无论顺序, 全胜,每场 分,总分 。
- 最好与最坏情况相同。
输出:12 12
结论
本题通过 贪心匹配 与 得分总和固定 的性质,将最坏情况转化为求对方的最大得分,从而高效解决问题。算法时间复杂度为 ,主要由排序决定,可处理 的数据规模。
- 1
信息
- ID
- 3853
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者