#P3683. 吃奶酪

吃奶酪

题目描述

房间里放着 nn 块奶酪。一只小老鼠要把它们都吃掉,问至少要跑多少距离?老鼠一开始在 (0,0)(0,0) 点处。

输入格式

第一行:一个整数 nn,表示奶酪的数量。 接下来 nn 行:每行两个实数,第 i+1i+1 行的实数分别表示第 ii 块奶酪的横纵坐标 xi,yix_i, y_i

输出格式

输出一行,一个实数,表示要跑的最少距离,保留 2 位小数。

样例 #1

样例输入 #1

4
1 1
1 -1
-1 1
-1 -1

样例输出 #1

7.41

样例解释 #1

老鼠从 (0,0)(0,0) 出发,需要吃掉所有 4 块奶酪。最优路径之一为: (0,0)(1,1)(1,1)(1,1)(1,1)(0,0) \to (1,1) \to (1,-1) \to (-1,-1) \to (-1,1) 计算各段距离:

  • (0,0)(0,0)(1,1)(1,1)(10)2+(10)2=21.414\sqrt{(1-0)^2 + (1-0)^2} = \sqrt{2} \approx 1.414
  • (1,1)(1,1)(1,1)(1,-1)(11)2+(11)2=2\sqrt{(1-1)^2 + (-1-1)^2} = 2
  • (1,1)(1,-1)(1,1)(-1,-1)(11)2+(1+1)2=2\sqrt{(-1-1)^2 + (-1+1)^2} = 2
  • (1,1)(-1,-1)(1,1)(-1,1)(1+1)2+(1+1)2=2\sqrt{(-1+1)^2 + (1+1)^2} = 2 总距离约为 1.414+2+2+2=7.4141.414 + 2 + 2 + 2 = 7.414,保留 2 位小数为 7.41。

提示

对于全部的测试点,保证 1n131 \le n \le 13xi,yi200|x_i|, |y_i| \le 200,小数点后最多有 3 位数字。

提示:对于两个点 (x1,y1)(x_1,y_1)(x2,y2)(x_2,y_2),两点之间的距离公式为 (x1x2)2+(y1y2)2\sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}