QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#6547. 女妖

Statistics

你在《星际争霸 II》中进行人族对神族的对抗,游戏进入了淘汰阶段,可以简化为一维场景。

你拥有一支由 $m$ 架配备了升级版超飞行旋翼的女妖战机(banshee)组成的军队,它们位于坐标轴上的点 $0$ 处。你的对手在坐标轴的正半轴上拥有 $n$ 座建筑。每座建筑都被视为一个线段。

以下是女妖战机的移动规则:

  • 配备了升级版超飞行旋翼的女妖战机速度为 $5.25$ 单位/秒。加速度是瞬时的。
  • 在《星际争霸》中,飞行单位没有单位碰撞,因此任意数量的女妖战机都可以位于同一点。

接下来是攻击规则:

  • 女妖战机可以攻击 $6$ 单位范围内的目标。如果建筑的任意一点在范围内,则该建筑可以被攻击。
  • 为简化起见,攻击过程如下:首先,女妖战机必须在不移动的情况下等待 $0.89$ 秒的冷却时间。之后,它会发射立即对目标造成伤害的炮弹。这最接近于射击前的武器充能。请注意,这与实际的《星际争霸》机制不同。
  • 在每次攻击中,女妖战机攻击一个目标并同时发射两枚炮弹。每枚炮弹造成 $12$ 点伤害。

最后是防御规则:

  • 最初,每座建筑都有满额的生命值(hitpoints)和护盾(shields)。如果建筑的生命值降至 $0$ 或以下,则该建筑被摧毁。
  • 如果建筑受到伤害但未被摧毁,且在 $10$ 秒内没有受到进一步伤害,其护盾开始充能。该建筑每秒恢复 $2$ 点护盾,直到护盾回满或再次受到攻击。恢复是连续的:例如,$0.1$ 秒内恢复 $0.2$ 点护盾。
  • 假设建筑有 $h$ 点生命值和 $s$ 点护盾,受到 $d$ 点伤害。首先,护盾会吸收尽可能多的伤害:护盾减少 $d' = \min(s, d)$。然后,生命值减少剩余的伤害 $d - d'$。

给定游戏中的初始位置,摧毁所有神族建筑所需的最短时间是多少?

输入格式

输入包含多个测试用例。 第一行包含一个整数 $t$,表示测试用例的数量。接下来是 $t$ 个测试用例,格式如下:

每个测试用例的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 2 \cdot 10^5$, $1 \le m \le 10^9$):剩余神族建筑的数量和你的女妖战机数量。所有女妖战机最初都位于坐标轴的 $0$ 点。

接下来的 $n$ 行,每行包含四个整数 $\ell, r, h, s$ ($0 \le \ell < r \le 10^{12}$, $0 < h \le 10^6$, $0 \le s \le 10^6$):分别为建筑的左端点、右端点、生命值和护盾值。你可以假设建筑互不重叠,且按 $\ell$ 坐标递增的顺序给出。

所有测试用例的 $n$ 之和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,在单独的一行中输出一个数字:摧毁所有神族建筑所需的最短时间。如果你的答案与裁判答案的绝对误差不超过 $10^{-4}$,则视为正确。

样例

输入 1

2
2 1
1 2 1 100
100 500 736 0
3 2
0 1 12 0
1 2 6 6
2 3 3 10

输出 1

49.94476
1.78000

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.