测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A6717. 「SDOI2012」基站建设

编程题 省选/NOI-
知识点

题目描述

UP 主家终于买电脑了,但是接下来有各种问题要处理。首要解决的问题就是网络问题。他要从移动公司开始,通过一些基站来传递网络到他家。

为了简化问题,我们假设移动公司,所有的基站,UP 主家位于同一条直线上,他们都位于这一条直线上的某一点$x$,这些点不会重合。每个基站发射和接收的范围都是一个切于地面的圆,发射的半径 $r_1$ 是固定的,接收半径 $r_2$ 是可调的的。如下图:

![](/uploads/acgo/image/96a6e150f689289d_14e6c53bf233.png)

一个点 $i$ 如果能从另一个点 $j$ 接收到信号(当且仅当 $x_j < x_i$),必须满足i的接收范围与j的发射范围相切,并且需要付 $\sqrt{r_{2_i}}$ 的额外费用。同时启动每一个点 $i$ 都需要费用 $v_i$。

当然一个点如果能够发射到 UP 主家只需要这个点的发射范围与 UP 主家所在的竖线相切或相交即可,如下图:

![](/uploads/acgo/image/5c71fb393255b26c_85ef30aa07b5.png)

当然费用越少就越好咯,于是 UP 主想要请你帮他的忙。

输入格式

第一行两个整数 $n, m$,分别表示基站个数(包括移动公司),UP 主家的坐标(保证大等于所以基站的坐标)。

记下来 $n$ 行,每行三个整数 $x_i, r_{1_i}, v_i$,表示每个基站的坐标,发射范围以及费用。

$x_i$ 是按照坐标从小到大输入的,移动公司位于最小的那个坐标。

$r$ 为 $1 \sim n$ 的排列。

输出格式

一个实数,保留小数点后三位。

输入输出样例

输入 #1
10 33
5 4 660
10 2 2040
11 6 3207
14 5 2006
18 3 6130
19 9 3363
22 1 1265
25 8 2836
27 10 7961
29 7 9075
输出 #1
3501.000

说明/提示

对于 $100\%$ 的数据,$n \leq 5 \times 10^6$,$x_i, m \leq 10^{12}$,$v_i \leq 10000$。
上一题 去做题 下一题