一、题目描述
A,B两个人万一个数字比大小的游戏,在游戏前,两个人会拿到相同长度的两个数字序列,两个数字序列不相同且其中的数字是随机的。
A,B各自从数字序列中挑选出一个数字进行大小比较,赢的人得1分,输的人扣1分,相等则各自的分数不变,用过的数字需要丢弃。
求A可能赢B的最大分数。
二、输入描述
输入数据的第一个数字表示数字序列的长度N,后面紧跟着两个长度为N的数字序列。
三、输出描述
A可能赢B的最大分数。
这里要求计算A可能赢B的最大分数,不妨假设,A知道B的数字序列,且总是B先挑选数字并明示;
可以采用贪心策略,能赢的一定要赢,要输的尽量减少损失。
四、解题思路
要解决这个问题,我们可以采用贪心策略,即总是让A尽可能多地赢得比赛。为此,我们需要对A和B的数字序列进行排序。在每一轮比较中,如果B选择了一个数字,A会根据以下策略回应:
- 如果A有比B当前选择的数字大的最小的数字,那么A就选择这个数字来赢得比赛。
- 如果A没有能赢B当前数字的选项,A应该用自己的最小的数字去和B的数字对比,以减少损失。
1、实现步骤
- 先读取N,然后读取A和B的数字序列。
- 将A和B的数字序列各自排序。
- 模拟比较:
- 对于B的每一个数字,从A的可用数字中寻找第一个大于B当前数字的数字。
- 如果