#P12859. [NERC 2020 Online] Jumping Cat

    ID: 14701 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度暂无评定 上传者: 标签>2020Special JudgeICPCNERC/NEERC

[NERC 2020 Online] Jumping Cat

题目描述

城市天际线由 nn 个整数 d1,d2,…,dnd_1, d_2, \ldots, d_n(0<d1<d2<…<dn0 < d_1 < d_2 < \ldots < d_n)和 nn 个整数 h1,h2,…,hnh_1, h_2, \ldots, h_n 定义。

天际线表面由 nn 条水平线段组成,第 ii 条线段连接点 (di−1,hi)(d_{i-1}, h_i) 和 (di,hi)(d_i, h_i)(其中 d0=0d_0 = 0)。每条线段代表一栋建筑的屋顶。

一只猫(体积极小可视为质点)需要从天际线最左端点 (0,h1)(0, h_1) 移动到最右端点 (dn,hn)(d_n, h_n)。为此,猫会执行一系列移动操作,每次操作有两种类型:

  1. 行走:从点 (x1,y1)(x_1, y_1) 移动到点 (x2,y2)(x_2, y_2)。两点必须位于同一条表面线段上,即存在 ii 使得 y1=y2=hiy_1 = y_2 = h_i 且 di−1≤x1,x2≤did_{i-1} \le x_1, x_2 \le d_i。行走轨迹为直线段。
  2. 跳跃:从点 (x1,y1)(x_1, y_1) 移动到点 (x2,y2)(x_2, y_2)。两点必须位于不同表面线段上,且需满足:
    • 两点间距离不超过 LL;
    • 连接两点的直线段不与任何建筑相交,即不存在线段上的点 (x,y)(x, y) 和整数 ii 使得 di−1<x<did_{i-1} < x < d_i 且 y<hiy < h_i。

猫的轨迹长度为所有移动操作的长度之和。求从 (0,h1)(0, h_1) 到 (dn,hn)(d_n, h_n) 的最短轨迹长度,若无法到达则输出 −1-1。

输入格式

第一行包含两个整数 nn 和 LL(1≤n≤501 \le n \le 50;1≤L≤1001 \le L \le 100)。
第二行包含 nn 个整数 d1,d2,…,dnd_1, d_2, \ldots, d_n(0<d1<d2<…<dn≤10000 < d_1 < d_2 < \ldots < d_n \le 1000)。
第三行包含 nn 个整数 h1,h2,…,hnh_1, h_2, \ldots, h_n(1≤hi≤1001 \le h_i \le 100;hi≠hi+1h_i \ne h_{i+1})。

输出格式

输出一个浮点数表示最短轨迹长度,若不可达则输出 −1-1。答案的绝对或相对误差不超过 10−910^{-9} 即视为正确。

6 5
3 9 11 12 16 18
5 1 6 2 5 7
25.83095189484530047
6 4
3 9 11 12 16 18
5 1 6 2 5 7
-1

提示

第一组样例的图示如下:

翻译由 DeepSeek V3 完成