#D1022. 机器人回仓库问题

机器人回仓库问题

【题目描述】

在一个平面直角坐标系中,有 nn 个机器人和两个充电站 A、B。每个机器人需要选择进入 A 或 B 充电站进行充电。

充电站 A 最多可以容纳 CaCa 个机器人,充电站 B 最多可以容纳 CbCb 个机器人。保证 Ca+CbnCa + Cb \geq n,即所有机器人都能找到充电站。

每个机器人和充电站的位置都由平面坐标 (xi,yi)(x_i, y_i) 表示。机器人移动的路程为欧几里得距离,即从机器人位置到充电站位置的直线距离。

请你计算所有机器人都进入充电站的最小总路程。


【输入描述】

输入第一行包含三个整数 Ax,Ay,CaAx, Ay, Ca,分别表示充电站 A 的坐标和容量。

第二行包含三个整数 Bx,By,CbBx, By, Cb,分别表示充电站 B 的坐标和容量。

第三行包含一个整数 nn,表示机器人的数量。

接下来 nn 行,每行包含两个整数 xi,yix_i, y_i,表示第 ii 个机器人的坐标。

保证:

  • 1n3×1051 \le n \le 3\times 10^5
  • 0Ca,Cbn0 \le Ca, Cb \le n
  • Ca+CbnCa + Cb \ge n
  • 104Ax,Ay,Bx,By,xi,yi104-10^4 \le Ax, Ay, Bx, By, x_i, y_i \le 10^4

【输出描述】

输出一个实数,表示所有机器人进入充电站的最小总路程。

输出保留 三位有效小数


【样例 1】

【样例 1 输入】

0 0 2
5 0 1
3
1 1
2 1
8 1

【样例 1 输出】

6.813

【样例 1 解释】

最优分配方案:机器人 1 和机器人 2 进入充电站 A,机器人 3 进入充电站 B。

总路程 = $\sqrt{(1-0)^2 + (1-0)^2} + \sqrt{(2-0)^2 + (1-0)^2} + \sqrt{(8-5)^2 + (1-0)^2}$ = 2+5+10\sqrt{2} + \sqrt{5} + \sqrt{10}1.414214+2.236068+3.1622781.414214 + 2.236068 + 3.1622786.8125606.812560


【样例 2】

【样例 2 输入】

0 0 2
10 0 2
4
1 0
3 0
7 0
9 0

【样例 2 输出】

8.000

【样例 2 解释】

最优分配方案:机器人 1 和机器人 2 进入充电站 A,机器人 3 和机器人 4 进入充电站 B。

总路程 = 1+3+3+1=81 + 3 + 3 + 1 = 8


【样例 3】

【样例 3 输入】

0 0 1
1 1 1
2
0 1
1 0

【样例 3 输出】

2.000

【样例 3 解释】

最优分配方案:机器人 1 进入充电站 A,机器人 2 进入充电站 B。

总路程 = 1+1=21 + 1 = 2


【数据规模与约定】

测试点编号 分数 特殊性质
1 ~ 3 30 n1000n \le 1000
4 ~ 5 10 Ca=0Ca = 0Cb=0Cb = 0
6 ~ 7 24 Ca=nCa = nCb=nCb = n
8 ~ 10 18 Ca+Cb=nCa + Cb = n
11 ~ 13 18`