传送门
计算几何好题。
本蒟蒻表示不看题解只会 O ( n 3 ) O(n^3) O(n3)。
正解是先考虑把直线按照斜率从小到大排序,然后把点按坐标排序。
这样每次枚举到直线 ( a , b ) (a,b) (a,b)时,离直线 a , b a,b a,b最近的点只能在 a , b a,b a,b在点序列中相邻的两个点上取到,然后在转过这条直线之后, ( a , b ) (a,b) (a,b)关于直线的相对位置会发生变化,所以每次转过之后交换 a , b a,b a,b就行了。
代码:
#include<bits/stdc++.h>
#define N 1005
using namespace std;