1 条题解
-
0
本题解是官方题解的 AI 中文翻译。
子任务 1. 如果所有 ,那么答案就是最短路长度减去 ,可以用 Dijkstra 算法在 内找到。
子任务 4. 如果所有 ,可以设计状态 ,转移方式类似 Dijkstra 算法。注意到答案不会超过 ,其中 。因此总复杂度为 。
子任务 2. 注意表演可以“延后”进行。当我们钱不够过某条边时,可以在已经经过的顶点中提前多次表演,以获取最多的钱。如果图是一个两端分别为 和 的链(bamboo),只需在前缀中维护 最大的顶点,每当钱不够时就在该顶点表演。这样复杂度为 。
完整解法. 借鉴子任务 2 的思路,可以设计状态 ,其中 表示当前所在顶点, 表示已经经过的、 最大的顶点。可以证明,最优策略是先最小化表演次数,再最大化剩余金钱。该动态规划的转移方式与子任务 4 类似,总复杂度为 。
- 1
信息
- ID
- 11056
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者