AT_arc016_4.[ARC016D] 軍艦ゲーム

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君是舰长。
高桥舰长的任务是从镇守府所在的海域出发,向最终目的地的海域进军。
高桥舰长的行动顺序如下:

  1. 航路选择
  • 选择进军的航路。如果当前海域没有任何可以前往其他海域的航路,则执行第 4 步的海域离脱。
  • 如果当前海域有多条通往其他海域的航路,则由于某种阴谋,每条航路被等概率选择。
  • 例如,如果从镇守府所在海域出发,有 4 条通往其他海域的航路,则每条航路被选择的概率为 25%25\%。
  1. 进军
  • 按照选择的航路,移动到下一个海域。
  1. 战斗
  • 在进军到的海域 ii,会遭遇敌舰并发生战斗。
  • 从镇守府出港时,高桥舰长率领的军舰体力为 HH,每次战斗军舰体力会减少 DiD_i。
  • 如果军舰体力降为 00 或以下,军舰就会沉没。
  • 一旦军舰沉没,高桥舰长会因失意而无法继续出击,因此“绝对不能让军舰沉没”。
  • 在镇守府所在海域不会发生战斗,但在最终目的地的海域必定会发生战斗。
  1. 海域离脱或返回航路选择
  • 海域离脱指的是返回镇守府所在的海域。
  • 离脱时,若军舰剩余体力为 CC,则需要花费 H−CH-C 的时间来恢复体力。

上述“1”、“2”、“3”、“4”每循环一次,消耗 11 单位时间。

关于海域和航路——现在有 NN 个海域和 MM 条航路。

  • 这 MM 条航路都是单向的。

因此,对于任意不同的海域 A,BA,B,如果有一条航路可以从 AA 到 BB,则不能通过同一条航路从 BB 到 AA。

你是高桥舰长的参谋,你的任务是计算在高桥舰长采取最优策略、消耗的时间最小的情况下,到达最终目的地并在战斗中存活所需的期望时间。
如果无论如何高桥舰长都无法完成任务,则输出 −1-1。
另外,保证不会出现输出期望值大于 10610^6 的输入。

输入格式如下,从标准输入读取。

  • 第 11 行包含三个整数,分别表示海域数 N (2≤N≤100)N\ (2\leq N\leq 100),航路数 M (0≤M≤N⋅(N−1)/2)M\ (0\leq M\leq N\cdot(N-1)/2),出港时舰队体力 H (1≤H≤100)H\ (1\leq H\leq 100),以空格分隔。

  • 镇守府所在海域为 11,最终目的地海域为 NN。

  • 第 22 行到第 M+1M+1 行,每行两个整数 fi (1≤fi≤N)f_i\ (1\leq f_i\leq N)、ti (1≤ti≤N)t_i\ (1\leq t_i\leq N),表示第 ii 条航路的起点和终点,以空格分隔。

  • 保证 fi<tif_i < t_i。

  • 第 M+2M+2 行到第 M+N+1M+N+1 行,每行一个整数 Di (0≤Di≤100)D_i\ (0\leq D_i\leq 100),表示在第 ii 个海域战斗时受到的伤害。

  • D1D_1 的值总是 00(即镇守府所在海域)。

  • 保证不会出现输出期望值大于 10610^6 的输入。

请输出在高桥舰长采取最优策略、消耗的时间最小的情况下,到达最终目的地并在战斗中存活所需的期望时间。
如果无论如何无法完成任务,则输出 −1-1。
输出的绝对误差或相对误差至少有一项不超过 10−610^{-6}。
输出末尾需换行。

  • 例如,从镇守府 11 到最终目的地 66 有两条路径:
  1. 1 →\to 2 →\to 4 →\to 6
  • 该路径被选择的概率为 50%50\%。
  • 该路径军舰受到的总伤害为 0+1+2+4=70+1+2+4=7。
  • 该路径消耗的时间为 33(即循环 33 次)。
  1. 1 →\to 3 →\to 5 →\to 6
  • 该路径被选择的概率为 50%50\%。
  • 该路径军舰受到的总伤害为 0+1+3+4=80+1+3+4=8。
  • 出港时军舰体力为 88,因此会沉没。
  • 高桥舰长会在海域 33 战斗结束后选择海域离脱。
  • 该路径消耗的时间为 11(循环 11 次)++ 体力恢复时间 =1+1=2=1+1=2。

即,1 →\to 3 →\to 5 →\to 6 路径上“撤退一次”后,再走 1 →\to 2 →\to 4 →\to 6——有 50%50\% 的概率走 1 →\to 3 →\to 5 →\to 6,消耗 22 单位时间返回镇守府。
之后有 50%50\% 的概率走 1 →\to 2 →\to 4 →\to 6,消耗 33 单位时间到达最终目的地。
即,有 25%25\% 的概率用 55 单位时间到达最终目的地。

如果在 1 →\to 3 →\to 5 →\to 6 路径上“撤退两次”后,再走 1 →\to 2 →\to 4 →\to 6,则有 12.5%12.5\% 的概率用 77 单位时间到达最终目的地。

如果在 1 →\to 3 →\to 5 →\to 6 路径上“撤退三次”后,再走 1 →\to 2 →\to 4 →\to 6,则有 6.25%6.25\% 的概率用 99 单位时间到达最终目的地。

由此可知,所求的期望值为 3×0.5+5×0.25+7×0.125+…=53\times 0.5+5\times 0.25+7\times 0.125+\ldots=5。

输入格式

无

输出格式

无

输入输出样例

  • 输入#1

    6 6 8
    1 2
    1 3
    2 4
    3 5
    4 6
    5 6
    0
    1
    1
    2
    3
    4

    输出#1

    5.0
  • 输入#2

    3 2 5
    1 2
    1 3
    0
    5
    1

    输出#2

    -1
  • 输入#3

    3 2 6
    1 2
    1 3
    0
    5
    1

    输出#3

    7
  • 输入#4

    9 13 4
    1 2
    1 3
    2 4
    2 5
    2 7
    3 5
    3 6
    4 7
    5 8
    6 8
    7 8
    7 9
    8 9
    0
    1
    1
    1
    1
    1
    1
    1
    1

    输出#4

    36.9999999999999

说明/提示

无

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页