A6191 | 补给
时间限制1s
内存限制512MB
通过 / 提交0/0
题目描述
小蓝是一个直升飞机驾驶员,他负责给山区的 $n$ 个村庄运送物资。
每个月,他都要到每个村庄至少一次,可以多于一次,将村庄需要的物资运送过去。
每个村庄都正好有一个直升机场,每两个村庄之间的路程都正好是村庄之间的直线距离。
由于直升机的油箱大小有限,小蓝单次飞行的距离不能超过 $D$。每个直升机场都有加油站,可以给直升机加满油。
每个月,小蓝都是从总部出发,给各个村庄运送完物资后回到总部。如果方便,小蓝中途也可以经过总部来加油。
总部位于编号为 $1$ 的村庄。
请问,要完成一个月的任务,小蓝至少要飞行多长距离?
每个月,他都要到每个村庄至少一次,可以多于一次,将村庄需要的物资运送过去。
每个村庄都正好有一个直升机场,每两个村庄之间的路程都正好是村庄之间的直线距离。
由于直升机的油箱大小有限,小蓝单次飞行的距离不能超过 $D$。每个直升机场都有加油站,可以给直升机加满油。
每个月,小蓝都是从总部出发,给各个村庄运送完物资后回到总部。如果方便,小蓝中途也可以经过总部来加油。
总部位于编号为 $1$ 的村庄。
请问,要完成一个月的任务,小蓝至少要飞行多长距离?
输入格式
输入的第一行包含两个整数 $n$,$D$,分别表示村庄的数量和单次飞行的距离。
接下来 $n$ 行描述村庄的位置,其中第 $i$ 行两个整数 $x_i$,$y_i$ 分别表示编号为 $i$ 的村庄的坐标。村庄 $i$ 和村庄 $j$ 之间的距离为 $\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}$。
接下来 $n$ 行描述村庄的位置,其中第 $i$ 行两个整数 $x_i$,$y_i$ 分别表示编号为 $i$ 的村庄的坐标。村庄 $i$ 和村庄 $j$ 之间的距离为 $\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}$。
输出格式
输出一行,包含一个实数,四舍五入保留正好 $2$ 位小数,表示答案。
输入输出样例
输入 #1
4 6 1 1 4 5 8 5 11 1
输出 #1
28.00
对于所有数据,保证,$1\le n\le20,1\le x_i,y_i\le10^4,1\le D\le10^5$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?