P4447 「AHOI2018 初中组」分组
按实力值排序后依次加入,维护当前分组方案。如果能加入已有的组就贪心加入人数较少的组。只有当任意一组都无法加入时才新开一组,此时无论前面的人如何分组都会多一个当前实力值的的人出来。
加入一个人会让组的最值变化 \(1\),人数增加 \(1\),所以可以用类似 01BFS 的方法开一个双端队列维护当前所有组。组的信息具有单调性(第一维是组中实力值的最值,第二维是人数),加入一个人就将队头更新扔到队尾,新开一组就塞进队头。
按实力值排序后依次加入,维护当前分组方案。如果能加入已有的组就贪心加入人数较少的组。只有当任意一组都无法加入时才新开一组,此时无论前面的人如何分组都会多一个当前实力值的的人出来。
加入一个人会让组的最值变化 \(1\),人数增加 \(1\),所以可以用类似 01BFS 的方法开一个双端队列维护当前所有组。组的信息具有单调性(第一维是组中实力值的最值,第二维是人数),加入一个人就将队头更新扔到队尾,新开一组就塞进队头。