Pku1981 Circle and Points单位圆覆盖
平面( 平面)上给定 个点。你有一个半径为 的圆,可以在平面上任意移动它,希望它围住尽可能多的点。请求出最多能同时围住多少个点。当一个点位于圆内或圆上时,就认为它被这个圆围住。
输入格式
输入由多组数据组成,最后一行仅包含一个字符 0,表示输入结束。
每组数据的第一行是一个整数 ,表示这组数据中点的个数。接下来 行描述这些点的坐标,每行两个小数 和 ,分别表示一个点的横、纵坐标,均给出小数点后 位。
输出格式
对于每组数据,输出一行,包含一个整数,表示半径为 的圆最多能同时围住的点数。不要输出任何其他字符,包括行首和行尾的空格。
样例输入
3
6.47634 7.69628
5.16828 4.79915
6.69533 6.20378
6
7.15296 4.08328
6.50827 2.69466
5.91219 3.86661
5.29853 4.16097
6.10838 3.46039
6.34060 2.41599
8
7.90650 4.01746
4.10998 4.18354
4.67289 4.01887
6.33885 4.28388
4.98106 3.82728
5.12379 5.16473
7.84664 4.67693
4.02776 3.87990
20
6.65128 5.47490
6.42743 6.26189
6.35864 4.61611
6.59020 4.54228
4.43967 5.70059
4.38226 5.70536
5.50755 6.18163
7.41971 6.13668
6.71936 3.04496
5.61832 4.23857
5.99424 4.29328
5.60961 4.32998
6.82242 5.79683
5.44693 3.82724
6.70906 3.65736
7.89087 5.68000
6.23300 4.59530
5.92401 4.92329
6.24168 3.81389
6.22671 3.62210
0
样例输出
2
5
5
11
数据范围
- ;
- ,;
- 任意两点间的距离不小于 ;
- 同一组数据中任意两点的距离 都不满足 (即不会近似等于 );
- 同一组数据中不存在三个点同时非常接近某个半径为 的圆周:设 为同一组数据中的任意三点, 为平面上任意选定的一点到它们的距离,则不会同时有 ()成立。
来源与许可
本题为 POJ 1981 试题「Circle and Points 单位圆覆盖」,题面与测试数据整理自 BZOJ 1338。
样例 1
输入
3
6.47634 7.69628
5.16828 4.79915
6.69533 6.20378
6
7.15296 4.08328
6.50827 2.69466
5.91219 3.86661
5.29853 4.16097
6.10838 3.46039
6.34060 2.41599
8
7.90650 4.01746
4.10998 4.18354
4.67289 4.01887
6.33885 4.28388
4.98106 3.82728
5.12379 5.16473
7.84664 4.67693
4.02776 3.87990
20
6.65128 5.47490
6.42743 6.26189
6.35864 4.61611
6.59020 4.54228
4.43967 5.70059
4.38226 5.70536
5.50755 6.18163
7.41971 6.13668
6.71936 3.04496
5.61832 4.23857
5.99424 4.29328
5.60961 4.32998
6.82242 5.79683
5.44693 3.82724
6.70906 3.65736
7.89087 5.68000
6.23300 4.59530
5.92401 4.92329
6.24168 3.81389
6.22671 3.62210
0
输出
2
5
5
11