QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 1024 MB 總分: 100

#2456. 生物旅行

统计

Ollie MacDonald 负责管理一个用于研究鸟类筑巢习性的生物保护区。保护区内散布着各种类型的筑巢箱,Ollie 的任务之一是定期检查这些箱子。在箱子之间往来的唯一方式是通过保护区内各路口交汇的土路,而 Ollie 在这些道路上行驶的唯一工具是一辆破旧的拖拉机(过去几年经费一直不太充足)。最近,拖拉机的转向机构出现了问题,限制了可用的转向角度。由于路口相对较小,Ollie 进入路口时可选择的道路可能会受到限制。例如,在图 B.1 中,如果 Ollie 从道路 A 进入路口,他可能可以从道路 B 或 C 离开;但如果他从道路 B 进入,受限的转向角度可能只允许他从道路 A 离开(从道路 C 进入时也可能发生同样的情况)。

此外,由于地形不平坦,沿一个方向行驶某条道路所需的时间可能比沿相反方向行驶所需的时间更长。

图 B.1:路口示例。

图 B.2:样例输入 1 的地图。

作为示例,图 B.2 展示了第一个样例输入中描述的保护区地图。在这张地图中,有两种方式可以到达路口 3 并返回生物站:按顺序访问所有路口耗时 9 分钟,或者先前往路口 3,左转前往路口 2,然后返回起点,总共耗时 7 分钟。

请注意,在这张地图中,无论 Ollie 沿哪个方向行驶,两个路口之间的行驶时间都是相同的。但在其他地图中情况并非总是如此。

还要注意,拖拉机不能从起点行驶到路口 3 然后右转前往路口 4,因为这需要 135 度的转弯,而拖拉机只能进行 90 度的转弯。Ollie 也不能进行掉头(180 度转弯)并直接返回生物站。

生物站处的路口足够大,Ollie 可以将拖拉机转向任何方向,因此他可以从生物站出发选择任何道路。

给定道路布局、拖拉机的转向限制以及 Ollie 需要访问的目标箱子所在的路口,他想知道前往该箱子并返回所需的最小时间。

输入格式

输入的第一行包含四个整数 $n, d, \alpha_1, \alpha_2$,其中 $n$ ($2 \le n \le 1000$) 是路口数量(编号为 1 到 $n$),$d$ 是包含目标鸟箱的路口编号,$\alpha_1$ 和 $\alpha_2$ ($0 < \alpha_1, \alpha_2 \le 180$) 分别指定了允许的转向角度(单位为度,见图 B.3)。生物站位于路口 1,也是 Ollie 旅程的起点和终点。接下来是 $n$ 行,用于指定土路。这些行中的每一行格式为 $m, d_1, t_1, a_1, d_2, t_2, a_2, \dots, d_m, t_m, a_m$。其中第 $i$ 行表示在路口 $i$ 有 $m$ 条土路交汇。这些道路中的第一条通往路口 $d_1$,行驶需要 $t_1$ 分钟,离开路口 $i$ 时的角度为 $a_1$(其中 0 为东,90 为北,以此类推);第二条道路通往路口 $d_2$,行驶需要 $t_2$ 分钟,离开路口 $i$ 时的角度为 $a_2$,依此类推。任何路口的最大 $m$ 值为 5,任何 $t_i$ 的最大值为 20。

图 B.3:转向角度规范。

输出格式

输出 Ollie 从生物站前往路口 $d$ 的鸟箱并返回生物站所需的最小时间。如果 Ollie 无法完成行程,则输出 impossible

样例

样例输入 1

4 3 90 90
3 2 3 45 3 2 0 4 2 315
2 1 3 135 3 2 270
3 1 2 180 2 2 90 4 2 225
2 1 2 135 3 2 270

样例输出 1

7

样例输入 2

2 2 90 90
1 2 10 0
1 1 15 180

样例输出 2

impossible

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.