Description
给一个大小为 (n) 的数组,将数值分组,每个组相当于值域的一个子区间,一个组内的数字极差不超过 (k)。压缩后,一个组的数字都会变成这个组中的最小值。求字典序最小的情况。
例如
4 3
2 14 3 4
的结果为 0 12 3 3
Solution
考虑贪心,顺序枚举每一个 (i),对于 (a_i),在值域中,从 (a[i]) 倒序找分组
如果找到了分组,考虑这个分组能否容得下 (a[i]),如果容得下则将 (a[i]) 分进去,否则另开一组
如果没找到分组,则另开一组