1 条题解
-
0
题解
思路推导
先把所有最佳时间从小到大排序。若两个最佳时间满足前者不大于后者,而安排的取出时间却前者更晚,交换这两道菜的取出时间不会增大两项绝对值之和。因此一定存在一个最优方案,使排序后的菜也按取出时间递增。
最晚只需考虑第 分钟:如果某道菜被安排得更晚,把它移动到此前尚未使用的某一分钟不会使总不愉快值变大。于是问题变成从 到 中依次选择 个不同分钟,与排序后的最佳时间匹配。
做法
令状态表示已经考虑到某一分钟,并安排了前若干道菜时的最小代价。处理下一分钟时,可以跳过它,也可以把下一道尚未安排的菜放在这一分钟,增加对应的绝对值代价。按分钟递推到 ,即可得到安排全部菜的最小代价。
正确性证明
由交换论证,存在一个最优方案使最佳时间和实际取出时间具有相同的非降顺序。动态规划枚举了 到 中所有递增的 个取出分钟组合,并按这一顺序与排序后的菜逐一匹配,所以最优方案必在枚举范围内。每次转移只选择跳过当前分钟或在当前分钟取出下一道菜,得到的方案均满足每分钟至多取出一道菜。因此动态规划所得值既不大于最优值,也不可能小于合法方案的最优值,故恰为答案。
复杂度分析
每组测试数据的时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1147
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者