在二维平面上有两个不同的点 和 构成直线线段 ,你需要构建一个数据结构,使得其能支持: 点-直线最近点:输出点 到直线 的最近点; 点-直线最近距离:输出点 到直线 的最近距离; 点-线段最近点:输出点 到线段 的最近点; 点-线段最近距离:输出点 到线段 的最近距离。
输入描述:
第一行输入一个整数 代表操作次数。此后 行,每行输入一个整数 对应题干操作编号。随后在同一行输入六个整数 代表直线上两点(或线段的两个端点)和待查询的点。保证点 和点 不同。
输出描述:
对于每一次 的询问,在一行上输出两个实数代表最近点的横纵坐标。对于每一次 的询问,在一行上输出一个实数代表最近距离。如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。由于实数的计算存在误差,当误差的量级不超过 时,您的答案都将被接受。具体来说,设您的答案为 ,标准答案为 ,当且仅当 时,您的答案将被接受。
示例1
输入
6
1 -1 3 2 -1 -2 1
2 -3 -1 3 1 0 0
3 0 3 -1 0 1 1
4 -4 2 2 0 -5 0
1 -4 2 2 0 -3 -1
2 -4 2 2 0 -3 -1
输出
-0.4 2.2
0.00000001
-0.5 1.5
2.2360679775
-2.2 1.4
2.5298221281347
加载中...