luogu#P2452. [SDOI2005] 屠龙传说-屠龙枪卷

[SDOI2005] 屠龙传说-屠龙枪卷

题目描述

先知看到修玛取回的药草,满意地点了点头。

他对修玛说:“跟我来”。

修玛顺从地跟着先知走到了他的房间里。先知的房间很大,四周满是书架,整整齐齐地摆放着一排排书籍。房间中间的圆桌上摆放着一个巨大的水晶球,它发出的荧光照亮了整个房间。

先知走到一排书架前,从中抽出一本薄薄的书来。这本书看起来十分古老,纸张都变成了黄色,有的地方已经发黑。修玛想,这本书的历史大概有好几百年了吧。

先知示意修玛坐下,他翻开手中的书,对修玛说道:“我已经研究这本书很久了。它是用一种古老的文字写成的,记载了一个十分古老的传说。书中提到,普通的武器是无法伤害巨龙的,只有诸神合力锻造的屠龙枪才能消灭它。为了防止屠龙枪被滥用,神把它封印在卡基思山上,只有拥有超人的勇气、力量和智慧的人才能解开这个封印。千百年来,很多人都想得到屠龙枪的力量,然而从没有人成功过。我查阅了所有有关屠龙枪的记载,悉心地研究那些资料,得知屠龙枪被封印在山顶的神殿中,而要解开这道封印,就必须把神殿中的一块巨大的圆石推到神殿祭坛的中心,然后念出解开封印的咒语。”

修玛问道:“那句咒语应该已经失传了吧?”“不,恰恰相反。”先知说,“这句咒语一直记载在这本书中,并被完好地保存下来。”“那么,剩下的只是把圆石推到祭坛的中心了。”修玛自信地笑了。然而先知却摇了摇头,“不,修玛,事情没有你想象的那么简单。爬上卡基思山就不是一件容易的事。它高耸入云,四周都是光秃秃的石壁,几乎没有落脚的地方。只有真正的勇士才能爬得上去。那块圆石也不是那么容易就能推动的,非得有超常的力量不可。这些东西,修玛你都有。但如果仅仅只有这些,那么屠龙枪早已被人拿到手了。书中不是说了么,要有勇气、力量和智慧。智慧才是真正的关键。如果在固定时间内不能把那块圆石推到祭坛的中心,那么圆石便会自动滚回原处,同时推石的人将永远无法再次推动这块圆石。而且不管你用多大力气推,这块圆石都不可能滚动得像你希望的那样快,我估计只有按照最短路线去推这块圆石,才能在固定时间内把它推到祭坛中心。神殿中又有着大大小小的石柱,有些石柱与石柱之间的空隙很小,根本就推不过去。正因为这种种困难,才没有人能够从神殿中取走屠龙枪。”

修玛沉默了一会儿,说:“不管如何,我也要去试一试。如果我不能拿到屠龙枪,就没有人能够拿到它了。”

先知点了点头,说:“去吧,修玛。记住,用你的智慧。”

修玛骑马奔驰了十天十夜,终于来到了卡基思山脚下。正如先知所说的那样,这座山根本就没有路可以上去,甚至找不到可以落脚的地方。然而修玛凭着他的勇气以及熟练的技巧,爬上了山顶。

当他走进神殿,一眼就看到了那块巨大的圆石。修玛该怎么做,才能把圆石推到祭坛的中心呢?

任务

你的任务是计算出把圆石推到祭坛中心的最短路线长度。

所谓推到祭坛中心是指圆石的中心与祭坛中心重合。

圆石中心的初始位置以及祭坛中心的位置是已知的。圆石半径为 RR,它可以朝着任意方向滚动。洞中所有石柱均为正四棱柱,大小不一。

在推动圆石的过程中,要求圆石中心与所有石柱的距离均不小于 RR,否则圆石将被石柱阻挡而不能继续滚动。

输入格式

第一行包含了五个实数,依次表示圆石中心的初始位置的 xx 坐标、yy 坐标、圆石半径 RR、祭坛中心的位置 (x,y)(x,y)

第二行包含一个整数 nn,表示神殿中石柱的数目。

接下来 nn 行,每行包含三个实数 (xi,yi,ri)(x_i,y_i,r_i),给出了一根石柱的信息,依次表示第 ii 根石柱左下角 xx 坐标、yy 坐标以及该石柱的边长。

数据输入所有实数均精确到 22 位小数,范围在 0010001000 之内。

输出格式

输出仅包含一个实数,表示把圆石推到祭坛中心的最短路线长度,输出结果保留到两位小数。

若不存在一条把圆石推到祭坛中心的路,输出 0.00

0 0 10 30 40
1
10 10 10

57.93

提示

数据范围及约定

对于全部数据,满足 0n200\le n\le 20


修玛思索良久,果断地走到圆石旁边,用力推动这块巨石。圆石在修玛的推动下,缓缓地滚动起来。修玛时不时地调整着推动的角度,以使巨石朝着自己希望的方向滚动。终于,“卡嗒”的一声,圆石安安稳稳地滚到了祭坛的中心。一束光从神殿顶上直射而下,笼罩了整个祭坛。修玛对着祭坛,大声地念出了解开封印的咒语。顿时,祭坛开始颤动,中间的圆石也随着摇摆不定。突然间,整块圆石完全爆裂开来,在祭坛的中心,出现了一柄长枪。枪身上闪烁着神圣的光芒,令人惊羡不已。修玛走上前去,拔起了这柄枪。他感到一股强大的力量从手上传了过来。修玛随手把枪一挥,只听得“哗啦”一声,一根巨大的石柱应声四分五裂了。修玛又惊又喜,他知道这一定就是屠龙枪。