P9848 [ICPC 2021 Nanjing R] Cloud Retainer's Game
题目描述
云堇,青云峰上云中居的建造者,对机械非常感兴趣。虽然距离璃月的海灯节还有一个多月的时间,她已经开始为其设计一个游戏活动。
游戏主要是关于释放弹珠以获得尽可能高的分数。它在二维平面上进行,平面上有两条水平直线 $y = 0$ 和 $y = H$。在这两条直线之间,有 $n$ 块小木板和 $m$ 个硬币,两者都可以视为单个点。第 $i$ 块木板位于 $(x_i, y_i)$,而第 $i$ 个硬币位于 $(x'_i, y'_i)$。
玩家从 $(10^{-9}, 10^{-9})$ 处释放一个弹珠。设 $\overrightarrow{v} = (v_x, v_y)$ 为弹珠的速度(也就是说,如果弹珠当前位于 $(x, y)$,则在 $\epsilon$ 秒后它将移动到 $(x + v_x\epsilon, y + v_y\epsilon)$)。初始时 $\overrightarrow{v} = (1, 1)$。
当弹珠撞到木板或两条水平直线之一时,$v_y$ 将被取反(即 $v_y$ 变为 $-v_y$),而 $v_x$ 保持不变。如果弹珠撞到硬币,玩家的分数增加 $1$,弹珠的速度保持不变。
为了获得更高的分数,玩家可以选择在释放弹珠之前移除任意数量的木板。也可以不移除任何木板。云堇希望你帮助她通过计算在最佳策略下经过 $10^{10^{10^{10^{10}}}}$ 秒后玩家可以获得的最高分数来估计游戏的难度。
输入格式
无
输出格式
无
说明/提示
下面显示了两个示例测试用例。实心菱形表示剩余的木板,空心菱形表示被移除的木板,圆点表示硬币。
题面翻译由 ChatGPT-4o 提供。