题目解析
本题首先看下题目描述中给的用例:
3
10 3 1
8
为什么分配后村民资产列表是:10 10 1,而不是10 6 6?
- 10 6 6 方案是:先给第二个村民分配3捐款,此时资产列表是 10 6 1,然后再给第三个村民分配5捐款,此时资产列表是 10 6 6。最终有2个村民资产变为相同,且剩余捐款为0。
- 10 10 1 方案是:只给第二个村民分配7捐款,此时资产列表变为 10 10 1,剩余1捐款也不分配给第三个村民。因此最终结果有2个村民资产变为相同,且剩余捐款为1。
这样来看的话,其实 10 6 6 的方案更优。因为题目说:使得最多村民刚好拥有相同资产的前提下,并剩余尽可能少的捐款。
那么为什么不选择 10 6 6 方案呢?因为题目描述中有一句话:
如果某村民不能通过分配捐款拥有相同资产,则不予分配
在 10 6 6 方案中,当我们首先给第二个村民分配3捐款时,资产列表变为 10 6 1,此时没有产生相同资产的村民,因此不能这样分配。
因此,本题的意思,其实就是一开始需要我们选取任意一个村民的原始资产作为基准值,然后其余村民通过分配捐款,使得分配后的资产等于基准值。
因此,我们可以将原始村民资产列表进行排序,这里进行降序,一旦我们选择某个村民 a[i] 资产作为基准值,则只能给比 a[i] 小的村民资产 a[j] (j > i
已下架不支持订阅
1万+

被折叠的 条评论
为什么被折叠?



