码迷,mamicode.com
首页 > 其他好文 > 详细

【中位数推公式】 糖果传递

时间:2020-07-12 10:28:35      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:ble   传递   相等   http   lin   中间   题意   前缀和   操作   

题意

传送门
\(N\)个人围成环形,每个人都有一定数量的糖果\(A_{i}\),每个人可以左右传递,
代价为\(1\),求让所有人的糖果数量相等所需要的最小操作数

数据范围

\(1\leq N \leq 10^{6}\)

题解

  • 所有人减去应该持有的平均数,求一下前缀和
  • 将前缀和数组排序,中间即开始的位置
    • \(S[n]\)\(0\)易知
    • \(a[k+1] s[k+1]-s[k]\)
      +$ a[k+2]. s[k+2]-s[k]$
    • \(\dots\)
    • \(a[n]. s[n]-s[k]\)
      +$ a[1] s[1]+s[n]-s[k]$
    • \dots
    • \(a[k] s[k]+s[n]-s[k]\)
  • 所以当\(k\)为中位数的时候最小

Code


【中位数推公式】 糖果传递

标签:ble   传递   相等   http   lin   中间   题意   前缀和   操作   

原文地址:https://www.cnblogs.com/hhyx/p/13287138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!