QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 2048 MB مجموع النقاط: 100

#16054. 悬崖行走

الإحصائيات

去年夏天的一个早晨,夏洛特(Charlotte)观察着太阳和月亮,发现此时正是满月。由于她住在大西洋沿岸,她知道这意味着与上弦月和下弦月相比,潮汐的变化幅度会更大。天空中没有下雨的迹象,这似乎是去悬崖边沙滩散步的完美一周。

在海滩与悬崖峭壁之间的沙滩上散步时,潮汐是非常危险的。随着海水上涨,你可能会被困住。因此,根据潮汐的变化规律来规划散步路线至关重要。

图片来自 Nuala

规划悬崖散步的一种简单方法是:开始往前走,并在落潮(最低潮)时转身返回。问题在于,在多石的沙滩上,你希望岩石在变干一小时后才踩上去。因此,实际上在落潮之后继续向前走一段距离也是安全的。请注意,沙滩主要由沙子组成,且岩石中有很多裂缝,因此我们假设所有区域在潮汐高度达到其自身高度的精确时刻被淹没或排干,而与其相邻区域的高度无关。

沙滩已经过测量,并提供了一张地图,其中每个 $10 \times 10\text{ m}$ 的方格都有一定的高度。每个方格只能从其北、南、东、西四个相邻的方格进入。只有当两个高度为 $z_1, z_2$ 的方格之间的绝对高度差 $|z_1 - z_2|$ 最多为 $1$ 米时,才能在这两个方格之间通行。夏洛特步行时,从一个方格移动到另一个方格需要消耗恒定的时间,并且在整个移动期间,这两个方格都必须是干燥的。夏洛特也可以决定在某个方格内停留任意长的时间。

受海底地形、海岸线等因素影响,地球上不同地方的潮汐表现也不同。夏洛特知道,潮汐的水位 $v$(单位:米)可以用公式 $v = 0.5a \cdot \left(\cos\left(t \frac{2\pi}{12}\right) + 1\right)$ 来近似,其中 $t$ 是自上一次满潮(最高潮)以来过去的时间(单位:小时),$a$ 是取决于地理位置、一年中的时间等因素的高度(单位:米)。

夏洛特将从她的家出发并最终返回家中。她将离开家的时间限制在一个潮汐周期内,因此你可以假设 $0.0 \le t \le 12.0$。在保证能够安全返回的前提下,她最远能到达距离家多远的地方?

输入格式

输入的第一行包含两个浮点数 $a$($0.0 < a < 15.0$)和 $m$($0.1 \le m \le 60.0$),其中 $m$ 表示在地图上通过一个方格所需的秒数。

第二行包含四个整数 $W, H, X$ 和 $Y$,其中 $1 \le W, H \le 200$,$0 \le X < W$ 且 $0 \le Y < H$。$W$ 和 $H$ 分别是海岸地图的宽度和高度,$(X, Y)$ 表示夏洛特家的坐标。

接下来 $H$ 行,每行包含 $W$ 个由空格分隔的整数,描述每个 $10 \times 10\text{ m}$ 测绘方格相对于极低潮位的高度(单位:毫米)。你可以假设每个方格的高度至少为 $0$ 且最多为 $20\,000$ 毫米。第一行的第一个数字对应坐标 $(0, 0)$。夏洛特的家将始终保持干燥。

输出格式

输出一行,包含夏洛特能够到达的离家最远欧几里得距离。两个方格之间的距离应通过它们的中心来测量。如果答案的绝对或相对误差不超过 $10^{-6}$,则认为答案正确。

为了避免浮点数带来的精度问题,保证对于所有满足 $0.999m < m' < 1.001m$ 的步行速度 $m'$ 以及所有满足 $a - 10^{-3} < a' < a + 10^{-3}$ 的高度 $a'$,计算出的结果都是相同的。

样例

输入样例 1

2.0 10.0
3 3 0 0
2001 1000 100
1001 10000 200
100 0 0

输出样例 1

20

输入样例 2

4.0 30.0
6 2 2 0
73 1001 4001 1001 76 70
70 2001 3001 2001 72 71

输出样例 2

22.36067977

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.