1 条题解
-
0
题解
思路
把 从小到大排序。考虑从左到右加入学生。一个尚未确定最大值的小组称为“未闭合小组”。若当前有 个未闭合小组,而相邻两个值的差为 ,那么跨过这段距离会使总不平衡度增加 。
做法
令 表示已经处理完前缀、当前有 个未闭合小组且已经产生的不平衡度为 的方案数。加入当前学生时有四类操作:
- 让他单独组成已经闭合的小组;
- 放入某个未闭合小组并保持该组未闭合;
- 用他开始一个新的未闭合小组;
- 放入某个未闭合小组并将该组闭合。
前两类合计有 种选择,第三类有 种,第四类有 种。因此在先加上 后,分别转移到 。只保留代价不超过 的状态。最终将 求和。
正确性来自如下不变式:每个已闭合小组的最小值和最大值都已经出现;每个未闭合小组只确定了最小值。跨过一段数轴距离时,恰好每个未闭合小组的不平衡度增加该距离。四类转移对当前学生在最终分组中的角色分类,互斥且完备,因此每个集合划分被恰好计数一次。
复杂度
时间复杂度为 ,空间复杂度为 。
子任务 1 可以直接枚举限制增长序列表示的所有集合划分;子任务 2 可以枚举包含最小未选元素的子集作为下一组,做子集动态规划。
- 1
信息
- ID
- 1472
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者