翻译
查看原帖
翻译
745184
normalpcer楼主2024/12/28 09:16

翻译

约翰有 NN2N15002 \leq N \leq 1500)头奶牛和 SSNS1,000,000N \leq S \leq 1,000,000)个一字排开的牛棚,相邻牛棚间的距离恰好为 11

奶牛们已经回棚休息,第 ii 只奶牛现在待在牛棚 PiP_i。如果两只奶牛离得太近,会让奶牛们变得很暴躁。

所以约翰想给一些奶牛换一个棚,让她们之间的距离变得尽量大,距离的差值尽可能小(即尽可能接近等距)。

d=S1N1d = \left\lfloor \frac{S-1}{N-1} \right\rfloor,约翰希望最终的奶牛的状态是:两只相邻奶牛间的距离与 dd 之差不超过 11,而且让尽量多的间距等于 dd

因此,对于 4 只奶牛 8 个棚的情况,1,3,5,81, 3, 5, 81,3,6,81, 3, 6, 8 这样的安置情况是允许的,而 1,2,4,71, 2, 4, 71,2,4,81, 2, 4, 8 这样的情况是不允许的。

帮助约翰移动奶牛,让所有奶牛的移动距离之和最小,同时让最终的安置情况符合约翰心意。

输入格式

  • 11 行:两个用空格分隔的整数:NNSS
  • 22N+1N+1 行:第 i+1i+1 行包含一个整数:PiP_i

输出格式

  • 11 行:一个整数,奶牛们需要移动的最小总距离。保证答案小于 10910^9(因此可以使用 int 类型存储)。

样例解释

初始状态:

12345678910
ABC....DE.

奶牛从牛棚 2 移动到 3,从 3 移动到 5,从 9 移动到 10。总移动距离是 1+2+1=41 + 2 + 1 = 4。奶牛们的最终位置在牛棚 1,3,5,8,101, 3, 5, 8, 10

12345678910
移动前ABC....DE.
移动后A.B.C..D.E
移动距离0.1.2..0.1
2024/12/28 09:16
加载中...