这时我能想到的最简便,最好打,常数最小,精度最高的方法了
(听说这时标准打法???喵喵喵???)
先把所有的点以X轴为标准分成两堆,
对于X轴上、下方的,分别按顺、逆时针排序即可,
这个用向量的差积+sort即可。
PS:为什么要分开,因为如果直接用差积,sort只保证相邻的两个点x,y(x再前),你代入sort的判断函数cmd(x,y)为true,这样就会出现排序完以后的点在绕圈圈,一圈一圈的绕。
Code
q=1;
fo(i,1,n)if(a[i].y>0)swap(a[i],a[q]),q++;
sort(a+1,a+q,CMD);
sort(a+q,a+1+n,CMD);
本文介绍了一种构建点集凸包的有效方法。通过将所有点依据X轴分为上下两部分,并分别进行顺、逆时针排序来实现。使用向量的差积结合排序算法,避免了直接排序可能产生的点绕圈现象。
935

被折叠的 条评论
为什么被折叠?



