上述中说的三种是方式分别是
- kuangbin的-容易理解
- 挑战书上的-容易实现
- 我的-我的理解
第一种kuangbin板子
class Point
{
public:
double x,y;
Point() {}
Point(double x,double y):x(x),y(y)
{
}
Point operator+ (Point p)
{
return Point(add(x,p.x),add(y,p.y));
}
Point operator -(Point p)
{
return Point(add(x,-p.x),add(y,-p.y));
}
Point operator *(double d)
{
return Point(x*d,y*d);
}
double operator *(Point p)
{
return add(x*p.x,y*p.y);//外积
}
double operator ^(Point p) //内积
{
return add(x*p.y,-y*p.x);
}
double det(Point p)
{
return add(x*p.y,-y*p.x);
}
double len()
{
return sqrt(add(x*x,y*y));
}
};
}
//旋转卡壳,求两点间距离平方的最大值
int rotating_calipers(Point p[],int n)//要求p序列为凸包序列
{
int ans = 0;
Point v;
int cur = 1;
for(int i = 0; i < n; i++)
版权声明:本文为Dch19990825原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。