题意
做法
考虑包含一个点集的最小的圆,一定能被两个点或三个点确定
枚举两个点,总共形成的圆个数是(O(n^2))的
然后再枚举每个点是否在圆内。总复杂度是(O(n^3))的
考虑优化这个暴力
可以二分出圆的半径,对于(R_0,R_1,R_0<R_1),显然(R_1)圆最大包含的点集会不小于(R_0)圆
对于当前二分的半径(R),枚举一个点最为圆周上的一个点(x)。然后其为直径的固定一端,直径另一端旋转。
对于每个点(y)如果到(x)距离(le 2R),那么一定有一个角的范围([l,r]),在(l)时进入,(r)时出去,可以扫描线做一下。
(O(n^2lognlogV))