码迷,mamicode.com
首页 > 其他好文 > 详细

Opentrains 1519 G——最小圆覆盖

时间:2019-09-28 23:06:33      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:hub   git   href   http   学习笔记   targe   就是   tar   最大   

题目

给出 $n$ 个定义在区间 $[0, 1]$ 上的一次函数 $f_i(x) = a_ix+b_i$,定义两个函数的距离为:

$$dist(f,g) = \left(\max_{0\leq i\leq T} (f(i)-g(i))\right)^2 + \left(\min_{0\leq i\leq T}(f(i)-g(i))\right)^2$$

你现在要找一个一次函数 $g(x) = cx+d$,使得下面的值最小:

$$\max_{1\leq i\leq n} dist(f_i, g)$$

你只需要输出最小值就可以了。($1\leq n \leq 200000$)

分析

一次函数减一次函数仍是一次函数,所以最值在端点取得。(画图也能发现)

即 $dust(f, g) = \left(f(0)-g(0) \right)^2 + \left(f(T) - g(T) \right)^2$

这是很熟悉的点到点的距离公式,如果我们把 $\left(f(0), f(T) \right)$,共有 $n$ 个点,$dist(f_i, g)$ 即为 $\left(g(0), g(T) \right)$ 到第 $i$ 个点的距离。

要求的就是到 $n$ 个点的最大距离的最小值,转化为求最小圆覆盖中的圆的半径。

 

 

参考链接: https://yang2002.github.io/2019/04/21/最小圆覆盖学习笔记/

Opentrains 1519 G——最小圆覆盖

标签:hub   git   href   http   学习笔记   targe   就是   tar   最大   

原文地址:https://www.cnblogs.com/lfri/p/11605120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!