1 条题解
-
0
题解
思路
把终点看成位置 ,但它不是可移除标志,也没有新的限速。
设
dp[i][r]表示保留第 个标志、已经移除恰好 个标志并到达 时的最短时间。若下一个保留的标志是 ,则中间的 个标志全部被移除,这一段一直使用 ,新增时间为因此可转移到
$$dp[j][r+j-i-1]\gets\min\bigl(dp[j][r+j-i-1],\ dp[i][r]+(d_j-d_i)a_i\bigr).$$答案是终点状态中移除数不超过 的最小值。
做法
当 时,可以枚举除起点外所有标志的删除集合,直接计算每个合法集合的通行时间,复杂度为 。
当 时,先计算不删除标志的时间。若删除第 个标志,只会合并它左右两段;枚举被删标志并用常数次运算计算新时间即可,复杂度为 。
正确性证明
任意合法删除方案都唯一确定一个递增的保留标志序列:序列以起点开始、以终点结束。相邻两个保留位置 之间恰好删除 个标志,并且整段通行时间必为 。
DP 的每次转移正好选择保留序列中的下一项,正确累加这一段的删除数与时间。于是每个合法删除方案都对应一条从起点到终点的 DP 路径;反过来,每条删除数不超过 的 DP 路径也唯一给出一个合法方案。DP 对所有路径取最小值,因此所得答案就是最短通行时间。
复杂度分析
共有 个状态,每个状态枚举下一个保留标志,时间复杂度为 ,空间复杂度为 。
- 1
信息
- ID
- 1122
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者