题目背景
在成功帮助小鸟游六花稳定了“不可视境界线”之后,富樫勇太原以为可以回归平静的日常生活。然而,六花却告诉他,由于“邪王真眼”的力量过于强大,导致蔚蓝城郊区沿河村庄的电缆线路发生了“魔力波动”,全部老化损坏。市长 SP 先生对此非常愤怒,决定重修所有电缆,并改日播放录像,杜绝此类情况再次发生。
河流两旁各有 $n$ 个和 $m$ 个村庄。每个村庄的位置可以用二维坐标表示,其中河流一侧的村庄横坐标均为 $x_1$,另一侧的村庄横坐标均为 $x_2$。任意两个村庄之间都可以沿直线修建一条电缆,长度即为两村庄的欧几里得距离。现在需要修建若干条电缆,使得任意两个村庄都可以通过电缆相连(即整个图连通)。由于经费与电缆总长度成正比,市长希望总长度尽可能小。
勇太虽然觉得很麻烦,但六花却认为这是“漆黑烈焰使”的使命。你能帮助他设计一套方案,使得电缆总长度最小吗?
题目描述
河流两岸各有一排村庄,左岸有 $n$ 个村庄,横坐标均为 $x_1$;右岸有 $m$ 个村庄,横坐标均为 $x_2$。所有村庄的纵坐标均为正整数且严格递增(同岸村庄按纵坐标排序后给出)。任意两个村庄之间可以修建电缆,长度为两点间的欧氏距离。
求使得所有村庄连通的最小电缆总长度,答案保留两位小数。
输入格式
第一行包含四个正整数 $n, m, x_1, x_2$,分别表示左岸村庄数、右岸村庄数、左岸横坐标、右岸横坐标。
第二行包含 $n$ 个正整数,描述左岸村庄的纵坐标。第一个数为纵坐标最小的村庄的纵坐标,从第二个数开始,每个数表示当前村庄与前一个村庄的纵坐标差,即 $y_1[i] - y_1[i-1]$。
第三行包含 $m$ 个正整数,以同样的差分方式描述右岸村庄的纵坐标。
输出格式
输出一行一个实数,表示最小电缆总长度,保留两位小数。
样例 #1
样例输入 #1
2 3 1 3
1 2
2 2 1
样例输出 #1
7.24
样例解释 #1
左岸村庄纵坐标:$1, 3$;右岸村庄纵坐标:$2, 4, 5$。
最优方案为:左岸两个村庄之间连接(长度 $2$),右岸三个村庄依次连接(长度 $2+1=3$),再选择一条最短的跨河电缆(连接左岸 $1$ 和右岸 $2$,长度 $\sqrt{(3-1)^2+(2-1)^2} = \sqrt{5} \approx 2.236$)。总长度为 $2+3+\sqrt{5} \approx 7.236$,保留两位小数为 $7.24$。
提示
本题共 $20$ 个测试点,各测试点规模如下:
| 测试点编号 | $n$ 的范围 | $m$ 的范围 | 特殊性质 |
|---|---|---|---|
| $1\sim 4$ | $[1,10]$ | $[1,10]$ | 无 |
| $5\sim 8$ | $[1,1000]$ | $[1,1000]$ | 无 |
| $9\sim 14$ | $[1,10^5]$ | $[1,10^5]$ | 无 |
| $15\sim 20$ | $[1,10^6]$ | $[1,10^6]$ | 无 |
对于 $100\%$ 的数据,$1 \le n,m \le 1.5\times 10^6$,所有村庄纵坐标均为不超过 $10^8$ 的正整数,$x_1 < x_2 < 2000$。
