#P7806. 冰魄吐息
冰魄吐息
题目背景
题目描述
个点,第 个点坐标为 。
定义一束激光:,若点 满足到该条直线距离 ,认为被激光击中。
求使用至多 束激光,击毁图中所有点的最小代价 。
输入格式
第一行输入两个正整数 。
第 行,每行两个非负整数 ,表示第 个点的坐标。
输出格式
第一行输出最小代价 ,保留到小数点后 位。
2 1
2 3
6 3
1.20
4 3
1 6
4 6
4 2
4 0
0.97
提示
样例说明
样例 中两蓝色点坐标分别为 和 ,到直线 的距离均为 ,因此输出 1.20 。 |
样例 中坐标为 的点与斜率为 的直线之间距离为 ,因此输出 0.97 。 |
可以证明两个样例中的方案是最优的,因此所求的 是最小的。
提示
- 可能会用到的公式:点 到直线 的距离是 。
- 对于 C++ 选手,建议使用 变量类型
long double
进行数值计算。
输出时请用形如printf("%.2Lf",ans)
的形式输出答案,注意%.2Lf
中的 L 是大写。 - 本题中存在的浮点数运算可能较多,虽然已经增大时限,但仍然请注意常数因子对程序效率的影响。
数据范围
本题采用捆绑测试。
记 为所有 的最大值。
Subtask | Score | ||
---|---|---|---|
对于 的数据:。
所有数据均保证不存在相同的 出现多次。
后记
冰魄战龙我吹爆
如果您也热爱 ddt,请在比赛结束后找到出题人,并把他虐一顿。
出题人推荐阅读题解:(优点:显然)https://www.luogu.com.cn/blog/_post/362493