链接:https://ac.nowcoder.com/acm/contest/60282/C 来源:牛客网 小红拿到了一个数组,她可以进行若干次以下操作: 1.选择一个元素,花费 p,使其加 x。 1.选择一个元素,花费 q,使其减 y。 小红希望若干次操作后,数组的平均数是一个整数。你能帮小红求出最小的总代价吗?
时间: 2024-04-08 15:31:55 浏览: 81
ACM程序设计导引及在线实践
对于给定的数组,要使得操作后的数组平均数是一个整数,可以通过以下方法计算最小的总代价:
1. 首先,计算数组的总和sum和元素个数n。
2. 判断sum是否能够整除n,如果不能整除,则无法使得平均数为整数,返回-1。
3. 计算目标平均数target = sum / n。
4. 统计数组中大于target的元素个数count1和小于target的元素个数count2。
5. 计算增加操作的总代价为count1 * p。
6. 计算减少操作的总代价为count2 * q。
7. 返回增加操作总代价和减少操作总代价的和作为最小的总代价。
注意:在计算代价时,需要考虑p、q、x、y的取值范围,以及可能存在的整数溢出情况。
希望能帮到你!如果还有其他问题,请继续提问。
阅读全文