#P16927. [SGU 308]Hyperboloid Distance

[SGU 308]Hyperboloid Distance

题目描述

给定单叶双曲面

x2+y2z2=1x^2+y^2-z^2=1

表面上的两个点 AABB

请计算从 AABB、且路径始终位于该双曲面表面上的最短距离

也就是说,需要求两点在曲面上的测地距离,而不是三维空间中的直线距离。

输入格式

输入包含六个实数:

xA,yA,zA,xB,yB,zBx_A,y_A,z_A,x_B,y_B,z_B

分别表示点 AA 和点 BB 的坐标。数字之间可以由空格或换行分隔。

保证两个点都位于曲面 x2+y2z2=1x^2+y^2-z^2=1 上,并且:

1zA,zB1-1\le z_A,z_B\le1

输出格式

输出 AABB 沿双曲面表面的最短距离。

答案的绝对误差在 ±0.1\pm0.1 范围内即可接受。

样例

1 0 0
0 1 0
1.5707963267

难度说明

本题需要处理曲面上的最短路。常见思路是使用参数化

$x=\cosh u\cos\varphi,\quad y=\cosh u\sin\varphi,\quad z=\sinh u$,

推导曲面上的长度度量,再进行数值最短路或其他可靠的数值求解。虽然允许 0.10.1 的误差,但如何建立模型并保证近似精度仍是主要难点。