思路

zswzh 2025-09-16 21:02:16 3
要算 S 最多能得多少巧克力,首先得把 C 和 S 的卡牌都排好序,核心思路就是让 S 用大的牌去赢 C 的小牌,越多越好。
这样每赢一次就能拿 3 颗巧克力。我们可以用两个指针,分别指着排序后 S 和 C 卡牌里最小或者最大的那个数,尽可能去凑 S 的牌点数比 C 大的情况,
然后统计 S 赢的次数。
如果把牌按降序排,然后从两端开始对比,如果 S 最大的牌比 C 最大的牌大,那这轮 S 就赢了;
要是 S 最大的牌没 C 大,那就用 S 最小的牌去和 C 最大的牌比,相当于牺牲小牌
。等统计完 S 赢的轮数后,剩下没配对的牌里,再去找点数相等的,这样能算平局次数,因为平局时两边各得 2 颗,
对 S 来说也能多拿分。最后 S 的得分就是用赢的次数乘以 3,加上平局次数乘以 2,再加上输的次数乘以 1
{{ vote && vote.total.up }}

共 2 条回复

zswzh

okok

root 站长

这种可以发题解