#eFTPPlydlt60x6803. 导弹防御塔

导弹防御塔

好的,这是整理好的题面,不含解题思路,只包含样例解释。


题目描述

Freda 的城堡遭受了 MM 个入侵者的攻击!
Freda 控制着 NN 座导弹防御塔,每座塔都有足够数量的导弹,但是每次只能发射一枚。

导弹发射规则:

  • 导弹需要 T1T_1 秒才能从防御塔中射出(注意单位)。
  • 发射一枚导弹后,该防御塔需要 T2T_2 分钟来冷却(不能再次发射)。
  • 所有导弹飞行速度相同为 VV,沿最短路径(水平距离)飞行。
  • 导弹飞行时间 = 距离 / VV(分钟)。
  • 导弹击中目标后可以立即摧毁目标。

给出 NN 座导弹防御塔的坐标、MM 个入侵者的坐标、T1,T2,VT_1, T_2, V

你需要求出至少多少分钟才能击退所有入侵者(即所有导弹从开始发射到最后一个导弹击中目标所需时间)。


输入格式

第一行五个正整数 N,M,T1,T2,VN,M,T_1,T_2,V
接下来 MM 行,每行两个整数,代表入侵者的坐标。
接下来 NN 行,每行两个整数,代表防御塔的坐标。

注意T1T_1 单位为T2T_2 和导弹飞行时间单位为分钟,输出结果单位为分钟

输出格式

输出一个实数,表示最少需要多少分钟,四舍五入保留六位小数。

数据范围

  • 1N,M501 \le N,M \le 50
  • 坐标绝对值不超过 1000010000
  • T1,T2,VT_1,T_2,V 不超过 20002000

输入样例

3 3 30 20 1
0 0
0 50
50 0
50 50
0 1000
1000 0

输出样例

91.500000

样例解释

N=3N=3(3 座塔),M=3M=3(3 个入侵者),T1=30T_1=30 秒,T2=20T_2=20 分钟,V=1V=1(距离单位/分钟)。

入侵者坐标:

  1. (0,0)
  2. (0,50)
  3. (50,0)

防御塔坐标:

  1. (50,50)
  2. (0,1000)
  3. (1000,0)

单位转换T1=30T_1 = 30 秒 = 0.50.5 分钟。


导弹攻击一个目标的总时间

导弹从塔发射到击中目标的时间 = 装填时间 T1T_1(单位换算为分钟)+ 飞行时间(距离 / VV)。
但发射后的冷却 T2T_2对防御塔的限制,并不是导弹的发射间隔,而是同一座塔两次发射之间必须间隔至少 T2T_2 分钟(从发射时刻算起)。

假设塔 ii 发射第 kk 枚导弹(kk 从 1 开始),那么发射时刻至少为 (k1)×T2(k-1)\times T_2 分钟后(因为前一枚发射后要冷却 T2T_2 分钟才能发射下一枚),再加上从发射到击中的时间。

但实际优化中,要让最后一个导弹击中时间最小,需要合理安排哪个塔打哪个目标、第几次发射。


样例最优时间计算(简要)

每个塔可以发射多次,但同一塔发射间隔至少 T2=20T_2=20 分钟。
这里有 3 个塔 3 个目标,每个目标必须被一个导弹击中,所以最少需要 3 次发射,可以用不同塔在不同时间发射。

已知答案输出是 91.50000091.500000 分钟,即最优安排下最后一个导弹击中目标的时间为 91.591.5 分钟。
这个时间是由最后一次发射的时间加上飞行时间得到的。

具体安排需要计算每座塔到每个目标的飞行时间,然后用二分+匹配判定可行性得到最小完成时间 91.591.5


输出91.500000