#P15671. [ICPC 2024 Jakarta R] Aquatic Dragon
[ICPC 2024 Jakarta R] Aquatic Dragon
说明
你生活在一个由 个岛屿(编号从 到 )组成的群岛中,这些岛屿排成一条直线。岛屿 与岛屿 相邻,其中 。在相邻的岛屿 和 之间,有一对单向的水下隧道:一条允许你从岛屿 走到岛屿 ,另一条则允许反向通行。每条隧道最多只能通行一次。
你还拥有一条龙。它有一个用非负整数表示的耐力值。耐力是龙施展其能力(游泳和飞行)所必需的。初始时,它的耐力为 。
你的龙的耐力可以通过以下方式增加:在每个岛屿 上都有一个魔法神龛,当你第一次访问岛屿 时,它会立即将你的龙的耐力增加 (无论龙当前在哪个位置)。这个事件不消耗时间。
当你位于一个岛屿上时,你可以执行以下 种移动操作:
- 游泳:如果你的龙和你位于同一个岛屿,你可以和你的龙一起游泳到相邻的岛屿。此操作要求你的龙的耐力至少为 。此操作会使你的龙的耐力减少 ,并且需要花费 秒来完成。
- 飞行:如果你的龙和你位于同一个岛屿,你可以和你的龙一起飞行到相邻的岛屿。此操作要求你的龙的耐力不为 。此操作会将你的龙的耐力设置为 ,并且需要花费 秒来完成。
- 独自行走:你可以独自一人(不带着龙)通过水下隧道走到相邻的岛屿。此操作需要花费 秒来完成。一旦你走过某条隧道,该隧道就不能再次使用。
请注意,游泳和飞行都不使用隧道。
你的龙和你当前位于岛屿 。你的任务是和你的龙一起到达岛屿 。请确定完成此任务所需的最短可能时间。
输入格式
第一行包含五个整数 (;)。
第二行包含 个整数 ()。
输出格式
在一行中输出一个整数,表示和你的龙一起到达岛屿 所需的最短可能时间。
5 4 2 9 1
1 2 4 2 1
28
5 4 2 1 1
1 2 4 2 1
4
3 4 2 10 1
3 1 2
16
提示
样例输入/输出 #1 的解释
以下事件序列将以最短时间完成你的任务:
- 岛屿 上的神龛将你的龙的耐力增加到 。
- 和你的龙一起飞行到岛屿 。岛屿 上的神龛将你的龙的耐力增加到 。
- 独自走到岛屿 。岛屿 上的神龛将你的龙的耐力增加到 。
- 独自走到岛屿 。岛屿 上的神龛将你的龙的耐力增加到 。
- 独自走到岛屿 。
- 独自走到岛屿 。
- 和你的龙一起游泳到岛屿 。你的龙的耐力现在为 。
- 和你的龙一起游泳到岛屿 。你的龙的耐力现在为 。
- 独自走到岛屿 。岛屿 上的神龛将你的龙的耐力增加到 。
- 独自走到岛屿 。
- 和你的龙一起飞行到岛屿 。
样例输入/输出 #2 的解释
对每个 重复以下过程:岛屿 上的神龛增加你的龙的耐力,然后利用耐力与你的龙一起飞行到岛屿 。
翻译由 DeepSeek V3.2 完成
京公网安备 11011102002149号