QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 512 MB Total points: 100

#4779. 列车延误

Statistics

去年,一些评委试图乘火车前往 NWERC'10。这变成了一场大灾难:在去程中,控制室的一场火灾导致了巨大的延误;而在返程中,不来梅的火车由于汉堡的恐怖威胁而延误。当然,这些巨大的延误导致了火车时刻表的其他延误,所以最大的问题是该乘坐哪趟火车:是现在乘坐这趟慢速区域列车更好,还是等待那趟很有可能延误的城际列车更好?

今年,评委们提前做好了计划,并仔细分析了火车时刻表。他们甚至记录了火车延误的频率和程度。现在他们掌握了所有这些信息,他们希望尽可能快地旅行,以最小化旅程的期望时长。你能帮助他们吗?

对于每一趟火车连接,评委们确切地知道其预定的出发时间和持续时间,以及到达目的地时延误的概率。你可以假设延误概率是独立的,并且评委可以根据他们可能已经遇到的任何延误,在旅途中调整他们的行程。火车总是准时出发,但可能会晚点到达,而且评委在登车前不知道火车的到达是否会延误。评委换乘火车不需要时间,因此他们可以乘坐与他们到达某地时间相同的连接列车。

评委可以随心所欲地选择他们最初的出发时间,他们希望最小化其总行程的期望时长$^4$。

输入格式

第一行是一个正整数:测试用例的数量,最多 100 个。每个测试用例包含:

  • 一行,包含评委的出发地和目的地,两者不同。
  • 一行,包含一个整数 $n$ ($1 \le n \le 1000$):火车连接的数量。
  • $n$ 行,每行描述一个火车连接:
    • 该连接的出发地和目的地,两者不同。
    • 一个整数 $m$ ($0 \le m \le 59$),每小时过后的出发分钟数。
    • 一个整数 $t$ ($1 \le t \le 300$),标准行程时间(假设没有延误)。
    • 一个整数 $p$ ($0 \le p \le 100$),延误的概率(百分比)。
    • 一个整数 $d$ ($1 \le d \le 120$),最大延误分钟数。

所有地名均为长度不超过 20 的大小写字母字符串。如果火车延误,则延误时长将是一个整数分钟,并在区间 $[1, d]$ 内均匀分布。

$^4$ 给定一个旅行计划(取决于之前的连接和延误),总行程的期望时长 $E$ 定义为每种可能采取的行程 $i$ 的行程时长 $T_i$ 乘以该行程发生的概率 $p_i$ 之和:$E = \sum_i p_i T_i$。

输出格式

对于每个测试用例:

  • 一行,包含一个浮点数:总行程的最小期望时长(以分钟为单位)。

该数字应精确到 $10^{-6}$ 的相对或绝对误差。如果目的地不可达,则输出 IMPOSSIBLE

样例

输入 1

3
Hamburg Bremen
3
Hamburg Bremen 15 68 10 5
Hamburg Bremen 46 55 50 60
Bremen Frankfurt 14 226 10 120
Amsterdam Rotterdam
1
Amsterdam Utrecht 10 22 5 10
BremenVegesack Utrecht
9
BremenVegesack BremenHbf 15 10 0 1
BremenVegesack BremenHbf 45 10 0 1
BremenVegesack Leer 23 140 10 15
BremenHbf Osnabruck 44 51 60 70
Osnabruck Amersfoort 55 147 38 40
Amersfoort Utrecht 24 15 30 15
Amersfoort Utrecht 54 15 10 35
Leer Groningen 45 140 5 10
Groningen Amersfoort 46 96 10 20

输出 1

68.3
IMPOSSIBLE
305.0532857

说明 1

在第一个样例中,注意乘坐从汉堡到不来梅的慢车更好,因为快车的期望旅行时间为 70.25 分钟。

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.