[ABC274E] Booster
题意翻译
### 题目描述
在平面直角坐标系中,有 $n$ 个城镇和 $m$ 个箱子。
你现在在 $(0,0)$,速度为 $1$,你需要走遍所有城镇后回到 $(0,0)$。
你可以选择走到箱子所处的位置,如果你第一次走到这个箱子,你可以吞下箱子里仅剩的一颗能量球,然后你的速度就翻倍了。
求从 $(0,0)$ 走遍所有城镇后回到 $(0,0)$ 所需的最短时间。
### 输入格式
第一行两个整数 $n,m$,含义如题中所述。
接下来 $n$ 行,第 $i+1$ 行两个整数表示第 $i$ 个城镇的坐标 $(x_i,y_i)$。
接下来 $m$ 行,第 $i+n+1$ 行两个整数表示第 $i$ 个箱子的坐标 $(p_i,q_i)$。
### 输出格式
一行一个小数,表示答案。
### 数据范围与提示
样例一:路径为 $O-Chest_1-Town_1-Town_2-O$。
样例二:路径为 $O-Town_1-Town_2-O$。
**数据范围:**
对于所有数据,$1\leq n\leq 12,0\leq m\leq 5,0\leq |x_i|,|y_i|,|p_i|,|q_i|\leq 10^9$。
Translate by Zek3L.
题目描述
[problemUrl]: https://atcoder.jp/contests/abc274/tasks/abc274_e
$ 2 $ 次元平面上に $ N $ 個の街と $ M $ 個の宝箱があります。街 $ i $ は座標 $ (X_i,Y_i) $ に、宝箱 $ i $ は座標 $ (P_i,Q_i) $ にあります。
高橋君は原点を出発し、$ N $ 個の街全てを訪れたのち原点に戻る旅行をしようと考えています。
宝箱を訪れる必要はありませんが、宝箱の中にはそれぞれブースターが $ 1 $ つあり、ブースターを拾うごとに移動速度が $ 2 $ 倍になります。
高橋君の最初の移動速度が単位時間あたり $ 1 $ であるとき、旅行にかかる時間の最小値を求めてください。
输入输出格式
输入格式
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ X_1 $ $ Y_1 $ $ \vdots $ $ X_N $ $ Y_N $ $ P_1 $ $ Q_1 $ $ \vdots $ $ P_M $ $ Q_M $
输出格式
答えを出力せよ。なお、想定解答との絶対誤差または相対誤差が $ 10^{-6} $ 以下であれば正解として扱われる。
输入输出样例
输入样例 #1
2 1
1 1
0 1
1 0
输出样例 #1
2.5000000000
输入样例 #2
2 1
1 1
0 1
100 0
输出样例 #2
3.4142135624
输入样例 #3
1 2
4 4
1 0
0 1
输出样例 #3
4.3713203436
说明
### 制約
- $ 1\ \leq\ N\ \leq\ 12 $
- $ 0\ \leq\ M\ \leq\ 5 $
- $ -10^9\ \leq\ X_i,Y_i,P_i,Q_i\ \leq\ 10^9 $
- $ (0,0),(X_i,Y_i),(P_i,Q_i) $ は相異なる
- 入力は全て整数
### Sample Explanation 1
以下のように移動するのが最適解の一つです。 - 原点から宝箱 $ 1 $ までの距離 $ 1 $ を速さ $ 1 $ で移動する。時間が $ 1 $ かかる - 宝箱 $ 1 $ から街 $ 1 $ までの距離 $ 1 $ を速さ $ 2 $ で移動する。時間が $ 0.5 $ かかる - 街 $ 1 $ から街 $ 2 $までの距離 $ 1 $ を速さ $ 2 $ で移動する。時間が $ 0.5 $ かかる - 街 $ 2 $から原点までの距離 $ 1 $ を速さ $ 2 $ で移動する。時間が $ 0.5 $ かかる
### Sample Explanation 2
以下のように移動するのが最適解の一つです。 - 原点 から街 $ 1 $ までの距離 $ 1.41\ldots $ を速さ $ 1 $ で移動する。時間が $ 1.41\ldots $ かかる - 街 $ 1 $ から街 $ 2 $ までの距離 $ 1 $ を速さ $ 1 $ で移動する。時間が $ 1 $ かかる - 街 $ 2 $ から原点までの距離 $ 1 $ を速さ $ 1 $ で移動する。時間が $ 1 $ かかる
### Sample Explanation 3
以下のように移動するのが最適解の一つです。 - 原点から宝箱 $ 1 $ までの距離 $ 1 $ を速さ $ 1 $ で移動する。時間が $ 1 $ かかる - 宝箱 $ 1 $ から宝箱 $ 2 $ までの距離 $ 1.41\ldots $ を速さ $ 2 $ で移動する。時間が $ 0.707\ldots $ かかる - 宝箱 $ 2 $ から街 $ 1 $ までの距離 $ 5 $ を速さ $ 4 $ で移動する。時間が $ 1.25 $ かかる - 街 $ 1 $ から原点までの距離 $ 5.65\ldots $ を速さ $ 4 $ で移動する。時間が $ 1.41\ldots $ かかる