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

翻译

农夫约翰有 NN 头奶牛(2N1,5002 \le N \le 1,500),它们被编号为 11NN。他新建的谷仓有一排 SS 个牛栏(NS106N \le S \le 10^6),这些牛栏也被编号为 11SS。每个牛栏与其相邻的牛栏相距为 11

奶牛们已经找到了各自的牛栏准备休息,第 ii 头奶牛在第 PiP_i 个牛栏里。由于奶牛们不合群,如果它们所处的牛栏彼此非常接近,它们就会变得脾气暴躁,所以农夫约翰希望将奶牛尽可能地分散开来。

约翰想要确保相邻奶牛之间的 N1N-1 个距离尽可能大,并且希望这些距离的差值尽可能小(即接近等距)。

具体来说,约翰希望所有相邻奶牛之间的距离与 d=S1N1d = \lfloor\frac{S - 1}{N - 1}\rfloor 的差值不超过 11。而且,他希望尽可能多的距离能够精确地等于 dd。因此,如果有 44 头奶牛和 88 个牛栏(此时 d=2d = 2),可以将奶牛放置在位置 1,3,5,81, 3, 5, 8 或者 1,3,6,81, 3, 6, 8,但不能放置在 1,2,4,71, 2, 4, 7 或者 1,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:26
加载中...