#MO0003. 连线问题

连线问题

连线问题

题目描述

在二维平面上,直线 x=0 x=0 上有 n n 个点,坐标为 (0,yi) (0, y_i) ; 直线 x=d x=d 上有 m m 个点,坐标为 (d,zj) (d, z_j)

任意两点之间连线的代价为它们的欧几里得距离。 现在你想把这 n+m n + m 个点联通(任意两点之间有路径),求问最小总代价。

输入格式

  • 第一行四个整数 n,m,d,p n, m, d, p
    • p p 是差分数组的长度(见下)
  • 第二行 p p 个整数 dy1,dy2,...,dyp dy_1, dy_2, ..., dy_p ,为 y y 数组的差分数组(即距离上一个点的距离)
  • 第三行 p p 个整数 dz1,dz2,...,dzp dz_1, dz_2, ..., dz_p ,为 z z 数组的差分数组

注:实际的 y y z z 数组通过累加差分数组生成,长度为 n n m m

输出格式

  • 输出一个小数,代表最小总代价,保留小数点后2位。

样例

样例输入1

2 3 1 3 1 2 2 2 1

样例输出1

7.24

样例输入2

10 10 10 1000 1 2000000 10 10 10 10 10 10 10 1 1000006 1000000 10 10 10 10 10 10 10 10

样例输出2

2001141.99

样例输入3

7 6 1 3 1 2 1 3 3 9 2 8 5 1 2 5 4

样例输出3

29.28

样例输入4

7 6 6 3 1 2 1 3 3 9 2 1 5 1 8 5 4

样例输出4

35.99

数据范围

  • 对于 10% 的数据,n,m10 n, m \leq 10
  • 对于 40% 的数据,n,m100 n, m \leq 100
  • 对于 70% 的数据,n,m1000 n, m \leq 1000
  • 对于 100% 的数据,n,m106,d109 n, m \leq 10^6, d \leq 10^9