loj#P2522. 「FJOI2018」邮递员问题
「FJOI2018」邮递员问题
题目描述
年以来,网购市场发展迅速,快递公司成为促成交易成功的关键环节。小郭是一名顺丰快递员,他的工资主要包括底薪、送货提成、收件提成、其他福利补贴等。
小郭每完成一件客户的快递单,一般能拿到运费 的提成。因此小郭完成的快递单越多越快,他的收入就越高。
小郭负责城市中 个平行街道的所有快递业务。在这 个平行街道上有 处快递工作站。
小郭每次投递的行程都是从一个工作站出发,完成所有快递单的投递后,回到另一个工作站。
为了高效地完成投递任务,小郭希望用最短的行程来完成所有快递单的投递任务。也就是说,对于给定的 个平行街道的街距和 个工作站位置,以及所有投递点的位置,小郭要计算从一个工作站出发,完成所有快递单的投递后,回到另一个工作站的最短行程。街距是指 个平行街道的之间的垂直距离。如果设平面坐标系的 轴与街道平行,且 个平行街道上的最左端位置的 坐标均为 ,则 个平行街道上的任何位置可以用从街道最左端到该位置的直线距离,即该位置的 坐标值来表示。
例如,设 个平行街道 A 和 B 的街距是 。 个工作站 和 的位置分别位于街道 A 的 和街道 B 的 处。另外有 个投递点 和 的位置分别位于街道 A 的 和街道 B 的 处,如图所示。小郭的任务就是要从工作站 出发,完成在 和 处的快递单投递后,回到另一个工作站 。
编程任务:对于给定的 个平行街道的街距和 个工作站位置,以及所有投递点的位置,计算从一个工作站出发,完成所有快递单的投递后,回到另一个工作站的最短行程。
输入格式
第 行有 个正整数 ,,分别表示 个平行街道 A 和 B 上的位置数(包括投递点的位置和工作站的位置)。位置编号为 A:;B:。
第 行有 个正整数 ,表示 个工作站位置分别为 和 。 或 表示相应的工作站在街道 , 或 表示相应的工作站在街道 。 和 分别表示工作站在相应的街道的位置号。例如,若 表示第 个工作站位于街道 上,其位置位于给出的街道 的 个位置的第 个位置。
第 行有 个实数 ,表示 个平行街道的街距()。
第 行有 个实数,表示街道 上 个位置的 坐标()。
第 行有 个实数,表示街道 上 个位置的 坐标()。
输出格式
输出计算出的最短行程,保留 位小数。
2 2
0 1 1 2
2
1 3
1 3
6.83
数据范围与提示
对于 的数据,;
对于 的数据,;
对于 的数据,;
对于 的数据,。
测试数据为民间数据,非原题数据。