1 条题解

  • 0
    @ 2025-10-23 9:20:35

    题目大意

    有两支队伍,每队 nn 名选手,每位选手有一个实力值。比赛规则为:

    • 双方选手按 11nn 的顺序一一对战。
    • 每场比赛:实力值高者获胜(得 22 分),平局则双方各得 11 分,败者得 00 分。
    • 对方出场顺序未知,但完全随机。
    • 要求计算:浙江队在 最好情况最坏情况 下分别能获得的总分。

    问题分析

    1. 关键性质

    • 实力值的大小关系直接决定胜负:实力强必胜实力弱,实力相等则平局。
    • 对方顺序未知,意味着我们可以假设对方会采取 对我方最有利对我方最不利 的顺序。
    • 这本质是一个 最优匹配问题:将我方 nn 名选手与对方 nn 名选手进行一一匹配,使得我方得分最高(或最低)。

    2. 最好情况(最大得分)

    策略:采用类似“田忌赛马”的贪心策略:

    1. 将我方选手实力值 AA 与对方选手实力值 BB 分别 从小到大排序
    2. 使用双指针,比较当前队列最弱与最强的匹配:
      • 如果我方最弱能战胜对方最弱 → 直接取胜(得 22 分),双方去掉最弱。
      • 如果我方最弱弱于对方最弱 → 让我方最弱与对方最强对战(输,得 00 分),消耗对方强者。
      • 如果我方最弱与对方最弱平局:
        • 如果我方最强能战胜对方最强 → 用最强赢最强(得 22 分)。
        • 否则 → 让我方最弱与对方最强平局(得 11 分)。

    这样能保证在对方任意顺序下,我方采取最优匹配时得分最大化。


    3. 最坏情况(最小得分)

    关键转化

    • 每场比赛双方得分总和固定为 22 分(因为胜/平时总分都是 22)。
    • 因此有: [ \text{浙江队得分} + \text{对手得分} = 2n ]
    • 浙江队得分最小 ⇔ 对手得分最大。
    • 所以,最坏情况 = 2n对手的最大得分2n - \text{对手的最大得分}

    计算方法

    • 将我方视为“对手”,对方视为“浙江队”,计算对方的最大得分 SS
    • 则我方最坏得分 = 2nS2n - S

    算法总结

    1. 最好情况得分
      使用贪心法计算 match(A,B)\text{match}(A, B),其中 AA 为浙江队实力值数组,BB 为对手实力值数组。

    2. 最坏情况得分
      计算 match(B,A)\text{match}(B, A) 得到对手最大得分 SS,则浙江队最坏得分 = 2nS2n - S


    举例验证

    样例 1

    n=2n=2A=[1,3]A=[1,3]B=[2,4]B=[2,4]

    • 最好情况:AABB 匹配可得 22 分(如 3322 胜,1144 负)。
    • 最坏情况:BBAA 匹配可得 44 分(全胜),则 AA 得分 = 44=04 - 4 = 0
      输出:2 0

    样例 2

    n=6n=6AA 全为 1000000010000000BB 全为 00

    • 无论顺序,AA 全胜,每场 22 分,总分 1212
    • 最好与最坏情况相同。
      输出:12 12

    结论

    本题通过 贪心匹配得分总和固定 的性质,将最坏情况转化为求对方的最大得分,从而高效解决问题。算法时间复杂度为 O(nlogn)O(n \log n),主要由排序决定,可处理 n100000n \leq 100000 的数据规模。

    • 1

    信息

    ID
    3853
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者