旋转卡壳+一个凸包模板

旋转卡壳模板

具体可以参考这个这里

code

1
2
3
4
5
6
7
8
9
10
11
12
13
int ()  
{
int q=1;
int ans=0;
stack[top]=0;//存储凸包点 top为总的点数
for(int i=0;i<top;i++)
{
while( (p[stack[i+1]]-p[stack[i]])*(p[stack[q+1]]-p[stack[i]])>(p[stack[i+1]]-p[stack[i]])*(p[stack[q]]-p[stack[i]]))
q=(q+1)%(top);
ans=max(ans , max((p[stack[i]]-p[stack[q]]).len2(),(p[stack[i+1]]-p[stack[q+1]]).len2()));
}
return ans;
}