Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:128 MB

#3434. 「SHOI2011」扫雷机器人 2011

统计

题目描述

扫雷是陆军战场上一项重要的而危险的任务。为此, AL 军工厂专门研制了一种扫雷机器人。这种机器人是专门针对直线形雷阵设计的。所谓直线形雷阵,就是所有的地雷都埋在同一条直线上。例如图中黑点表示的雷阵就是直线形雷阵。

robot2011.png

AL 军工厂生产的扫雷机器人的排雷方法只有一种,那就是安全引爆。每次,机器人在所有探测到的地雷中选择一颗引爆。被引爆的地雷会接连引爆不超过他的爆炸威力范围的其它地雷,这些被间接引爆的地雷还能引起进一步的连锁爆炸。例如图中,用一个圆的半径表示地雷的爆炸威力。如果引爆 $2$ 号雷, $1$ 、 $2$ 号雷都会爆炸;如果引爆 $3$ 号雷, $4$ 颗地雷全都会爆炸;而如果引爆 $4$ 号雷,那就只有它一颗爆炸。
虽然是机器人,但引爆也是危险的。所以,扫雷机器人的订购人希望机器人能在实战中采取引爆次数尽可能少的炸毁所有地雷的排雷方案。于是 AL 军工厂想就此方面对机器人进行测试。为了评估机器人的表现, AL 军工厂打算事先计算出:在一个直线形雷阵(即输入的雷阵)中,如果随机进行引爆,完成排雷工作所需要引爆次数的期望;并将这个值与机器人的实际排雷方案相比较,来评估他的表现。
所谓“随机进行引爆”是指,每次在所有没有被引爆的地雷中等概率的随机选择一个进行引爆。当这一次引爆引发的连环爆炸结束后,如果还有地雷没有被引爆,则重复上面的操作,直到所有地雷都被引爆为止。

输入格式

输入的第一行是一个正整数 $n$ ,表示地雷的个数。
接下去 $n$ 行,按照地雷的位置顺序,每行描述一颗地雷。其中,第 $i+1$ 行有两个整数 $x_i$ 和 $d_i$ ,分别是地雷的坐标和地雷的爆炸威力。也就是说,第 $i$ 号地雷的爆炸能直接进一步引爆第 $j$ 号地雷的条件是 $|x_i-x_j| \le d$ 。 输入保证: $|x_i| \le 10^8$ , $1 \le d_i \le 10^8$ 。

输出格式

输出只有一行,包含一个实数,即为答案。四舍五入到小数点后四位。

样例 1

input

4
0 1
2 2
8 7
11 2

output

2.3333

样例 2

input

3
-10 10
0 1
10 10

output

2.3333

样例 3

input

2
1 10
2 100

output

1.0000

样例 4

input

9
1 10
2 10
3 10
4 10
5 10
6 10
7 10
8 10
1000 2000

output

1.8889

数据范围与提示

提示

本题的试题目录下有 $10$ 个额外的输入样例文件 robot20111.in~robot201110.in ,以及它们对应的输出样例文件 robot20111.out~robot201110.out 。这些数据符合本题中关于数据规模的全部约定,但它们不是最终的测试数据。

评分方式

在每个测试点,如果您的输出是 $YourAns$ ,而标准答案是 $StdAns$ ,那么:

  • 当 $ |YourAns-StdAns| \le 0.0001 $ 时,该测试点得 $10$ 分。
  • 当 $ 0.01 \ge |YourAns-StdAns| > 0.0001 $ 时,该测试点得 $6$ 分。
  • 当 $ 0.5 \ge |YourAns-StdAns| > 0.01 $ 时,该测试点得 $2$ 分。
  • 否则得 $0$ 分。

数据范围

数据编号 数据限制
1 $ n \le 20$
2 $n\le 200$ ,且任意方案都保证引爆次数不超过 $20$
3 $n\le 200$
4~5 $n\le 4000$ ,且任意方案都保证引爆次数不超过 $20$
6~10 $n\le 4000$