CF1065C Make It Equal
题目描述
有一个由 $n$ 个塔组成的玩具建筑。每个塔由若干个立方体叠加而成。第 $i$ 个塔由 $h_i$ 个立方体组成,因此其高度为 $h_i$。
我们定义在某个高度 $H$ 上进行一次“切片”操作:对于每个塔 $i$,如果其高度大于 $H$,则移除顶部若干立方体,使该塔的高度变为 $H$。一次“切片”的代价等于所有塔中被移除立方体的总数。
如果一次切片的代价不超过 $k$($k \ge n$),我们称其为一次“好切片”。
请计算,为了使所有塔的高度都相同,最少需要进行多少次好切片。可以保证一定可以做到。
输入格式
第一行包含两个整数 $n$ 和 $k$($1 \le n \le 2 \cdot 10^5$,$n \le k \le 10^9$),分别表示塔的数量和每次切片的代价上限。
第二行包含 $n$ 个用空格分隔的整数 $h_1, h_2, \dots, h_n$($1 \le h_i \le 2 \cdot 10^5$),表示每个塔的初始高度。
输出格式
输出一个整数,表示使所有塔高度相同所需的最少好切片次数。
说明/提示
在第一个样例中,最优方案是进行 $2$ 次切片。第一次在高度 $2$ 处切片(代价为 $3$),第二次在高度 $1$ 处切片(代价为 $4$)。
由 ChatGPT 4.1 翻译