【分配捐款】

153 篇文章

已下架不支持订阅

题目解析

本题首先看下题目描述中给的用例:

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

已下架不支持订阅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值