能量护盾

ks559337 程序题 共 个子题

在一处被宇宙射线笼罩的星域中,你驾驶着一艘小型探索飞船,需要从坐标 (x_s, y_s) 航行到坐标 (x_t, y_t)。飞船可以以速度 1 向任意方向移动,自身视为一个点。

星域中分布着 N 个圆形能量护盾,第 i 个护盾的圆心为 (x_i, y_i),半径为 r_i。护盾之间可能相互重叠,也可能存在包含关系。飞船一旦进入某个护盾的内部,就能免受宇宙射线的伤害。若一个点不在任何护盾内部,则飞船会持续受到宇宙射线的照射。

你的目标是:在从起点到终点的航行过程中,尽可能减少受到宇宙射线照射的总时间。请你计算这个最小照射时间。

输入格式

第一行,四个整数 x_s, y_s, x_t, y_t,分别表示起点和终点的坐标。第二行,一个整数 N,表示圆形护盾的数量。接下来 N 行,每行三个整数 x_i, y_i, r_i,描述第 i 个护盾的圆心坐标和半径。

输出格式

输出一个实数,表示受到宇宙射线照射的最小时间,保留 10 位小数。

输入样例1

-2 -2 2 2
1
0 0 1

输出样例1

3.6568542495

输入样例2

-2 0 2 0
2
-1 0 2
1 0 2

输出样例2

0.0000000000

输入样例3

4 -2 -2 4
3
0 0 2
4 0 1
0 4 1

输出样例3

4.0000000000

说明提示

-10^9 ≤ x_s, y_s, x_t, y_t ≤ 10^9

(x_s, y_s) ≠ (x_t, y_t)

1 ≤ N ≤ 1000

-10^9 ≤ x_i, y_i ≤ 10^9

1 ≤ r_i ≤ 10^9

限制

时间限制:1000ms,内存限制:128MiB

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧