1 条题解

  • 0
    @ 2026-8-30 10:53:12

    题解

    思路推导

    先把所有最佳时间从小到大排序。若两个最佳时间满足前者不大于后者,而安排的取出时间却前者更晚,交换这两道菜的取出时间不会增大两项绝对值之和。因此一定存在一个最优方案,使排序后的菜也按取出时间递增。

    最晚只需考虑第 2n2n 分钟:如果某道菜被安排得更晚,把它移动到此前尚未使用的某一分钟不会使总不愉快值变大。于是问题变成从 11 到 2n2n 中依次选择 nn 个不同分钟,与排序后的最佳时间匹配。

    做法

    令状态表示已经考虑到某一分钟,并安排了前若干道菜时的最小代价。处理下一分钟时,可以跳过它,也可以把下一道尚未安排的菜放在这一分钟,增加对应的绝对值代价。按分钟递推到 2n2n,即可得到安排全部菜的最小代价。

    正确性证明

    由交换论证,存在一个最优方案使最佳时间和实际取出时间具有相同的非降顺序。动态规划枚举了 11 到 2n2n 中所有递增的 nn 个取出分钟组合,并按这一顺序与排序后的菜逐一匹配,所以最优方案必在枚举范围内。每次转移只选择跳过当前分钟或在当前分钟取出下一道菜,得到的方案均满足每分钟至多取出一道菜。因此动态规划所得值既不大于最优值,也不可能小于合法方案的最优值,故恰为答案。

    复杂度分析

    每组测试数据的时间复杂度为 O(n2)O(n^2),空间复杂度为 O(n2)O(n^2)。

    • 1

    信息

    ID
    1147
    时间
    2000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    0
    上传者