题目链接
戳此处🗡
数据下载┏┛墓┗┓…(((m -__-)m))
解析
注意,此处码头指的是一条直线。。
a straight line passing throughtwo distinct points with coordinates (0, 0)(0,0) and (A, B)(A,B).
我们考虑,在一条直线上,以点$o$为圆心,$r$为半径的一个圆,如何才能将一个点$p$包含?
显然,以$p$为圆心,同样的做一个半径$r$的圆,其与直线的两个交点形成的线段,便是$o$的取值范围。
如图1:
于是乎,题目就从,如何在线上找一点,使得其做的圆包含点最多,变成了线段重叠问题。
问哪个地方线段重叠最多,显然是扫描线类型的题目。
按照一个方向扫过去,碰到一个线段的起点便$ans+=1$,碰到线段的末尾$ans-=1$
如此扫一遍,每次$ans$更改时取一次$maxx$,扫完后的$maxx$便是答案。
代码
1 | /* |