题目描述:
恰逢 H 国国庆,国王邀请 nnn 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 nnn 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。
国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。
大致思路:
妥妥的贪心题,我们把所有人的左手存进 aaa 数组,把所有人的左手存进 bbb 数组,因为直接看整体,很难做,那么我们可以从两个人中找出规律,再依次循环下去。现在有两个人,它们的下标分别为 xxx 和 yyy,那么接下来就可以进行分类讨论:
-
把下标为 xxx 的人放在前面,把下标为 yyy 的人放在后面。
-
把下标为 yyy 的人放在前面,把下标为 xxx 的人放在后面。
接着,把前面人左手的乘积看做 sss。
-
对于把下标为 xxx 的人放在前面,把下标为 yyy 的人放在后面,这种可能 x,yx,yx,y 的收益分别为 s÷bxs ÷ b_xs÷bx 和 s×ax÷bys × a_x ÷ b_ys×ax÷by。
-
对于把下标为 yyy 的人放在前面,把下标为 xxx 的人放在后面,这种可能 y,xy,xy,x 的收益分别为 s÷bys ÷ b_ys÷by 和 s×ay÷bxs × a_y ÷ b_xs×ay÷bx。
对于 xxx 和 yyy 之前的人来说不影响他们的钱数,对于 xxx 和 yyy 后面的人来说也不影响他们的钱数,所以我们只要考虑 max(s÷bx,s×ax÷by)\max(s ÷ b_x,s × a_x ÷ b_y)max(s÷