CF1495A.Diamond Miner
普及-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Diamond Miner is a game that is similar to Gold Miner, but there are n miners instead of 1 in this game.
The mining area can be described as a plane. The n miners can be regarded as n points on the y-axis. There are n diamond mines in the mining area. We can regard them as n points on the x-axis. For some reason, no miners or diamond mines can be at the origin (point (0,0)).
Every miner should mine exactly one diamond mine. Every miner has a hook, which can be used to mine a diamond mine. If a miner at the point (a,b) uses his hook to mine a diamond mine at the point (c,d), he will spend (a−c)2+(b−d)2 energy to mine it (the distance between these points). The miners can't move or help each other.
The object of this game is to minimize the sum of the energy that miners spend. Can you find this minimum?
《钻石矿工》是一款与《黄金矿工》类似的游戏,但本游戏中有 n 名矿工,而非仅 1 名。
采矿区域可被描述为一个平面。n 名矿工可视为位于 y 轴上的 n 个点;采矿区域内有 n 座钻石矿,可视为位于 x 轴上的 n 个点。由于某些原因,没有任何矿工或钻石矿能位于原点(即点 (0,0))。
每名矿工必须恰好开采一座钻石矿。每名矿工都有一根钩子,可用于开采一座钻石矿。若一名位于点 (a,b) 的矿工使用钩子开采位于点 (c,d) 的钻石矿,则他将消耗 (a−c)2+(b−d)2 单位能量(即这两点之间的欧氏距离)。矿工不能移动,也不能互相协助。
本游戏的目标是使所有矿工所消耗的能量总和最小。你能求出该最小值吗?
输入格式
The input consists of multiple test cases. The first line contains a single integer t (1≤t≤10) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer n (1≤n≤105) — the number of miners and mines.
Each of the next 2n lines contains two space-separated integers x (−108≤x≤108) and y (−108≤y≤108), which represent the point (x,y) to describe a miner's or a diamond mine's position. Either x=0, meaning there is a miner at the point (0,y), or y=0, meaning there is a diamond mine at the point (x,0). There can be multiple miners or diamond mines at the same point.
It is guaranteed that no point is at the origin. It is guaranteed that the number of points on the x-axis is equal to n and the number of points on the y-axis is equal to n.
It's guaranteed that the sum of n for all test cases does not exceed 105.
输入包含多个测试用例。第一行包含一个整数 t(1≤t≤10),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含一个整数 n(1≤n≤105),表示矿工和钻石矿的数量。
接下来的 2n 行中,每行包含两个以空格分隔的整数 x(−108≤x≤108)和 y(−108≤y≤108),表示点 (x,y),用于描述一名矿工或一座钻石矿的位置。若 x=0,则表示在点 (0,y) 处有一名矿工;若 y=0,则表示在点 (x,0) 处有一座钻石矿。同一位置上可能存在多名矿工或多个钻石矿。
保证不存在位于原点 (0,0) 的点。保证位于 x 轴上的点的数量恰好为 n,位于 y 轴上的点的数量也恰好为 n。
保证所有测试用例的 n 值之和不超过 105。
输出格式
For each test case, print a single real number — the minimal sum of energy that should be spent.
Your answer is considered correct if its absolute or relative error does not exceed 10−9.
Formally, let your answer be a, and the jury's answer be b. Your answer is accepted if and only if max(1,∣b∣)∣a−b∣≤10−9.
对于每个测试用例,输出一个实数——即所需消耗的最小能量总和。
若你的答案的绝对误差或相对误差不超过 10−9,则该答案被视为正确。
形式化地,设你的答案为 a,评测组的答案为 b。当且仅当 max(1,∣b∣)∣a−b∣≤10−9 时,你的答案被接受。
输入输出样例
输入#1
3 2 0 1 1 0 0 -1 -2 0 4 1 0 3 0 -5 0 6 0 0 3 0 1 0 2 0 4 5 3 0 0 4 0 -3 4 0 2 0 1 0 -3 0 0 -10 0 -2 0 -10
输出#1
3.650281539872885 18.061819283610362 32.052255376143336
说明/提示
In the first test case, the miners are at (0,1) and (0,−1), while the diamond mines are at (1,0) and (−2,0). If you arrange the miners to get the diamond mines in the way, shown in the picture, you can get the sum of the energy 2+5.

在第一个测试用例中,矿工位于 (0,1) 和 (0,−1),而钻石矿位于 (1,0) 和 (−2,0)。若按图中所示方式安排矿工去采集钻石矿,则可获得总能量 2+5。

输入解题思路,AI测评打分。不知道怎么写?