社区讨论
关于半平面交
P4196【模板】半平面交 / [CQOI2006] 凸多边形参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @lodl263f
- 此快照首次捕获于
- 2023/10/31 08:20 2 年前
- 此快照最后确认于
- 2023/11/06 23:29 2 年前
它SPFA了
本地运行不了(
一进去就卡死
已知如下函数有误
若注释去此函数调用则可
求dalao查错/kel/kel/kel
CPPPolygon HPI(Line *v,ll n){
for(ll i=0;i<n;i++) v[i].ang=Line_angle(v[i]);
sort(v,v+n);
Polygon ans;
Line q[maxp];
Point p[maxp];
ll l=0,r=0;
q[0]=v[0];
for(ll i=1;i<n;i++){
while(l<r&&!Onleft(v[i],p[r-1])) r--;
while(l<r&&!Onleft(v[i],p[l])) l++;
q[++l]=v[i];
if(sgn(Cross(q[r].p2,q[l-1].p2))==0){
r--;
if(Onleft(q[r],v[i].p1)) q[r]=v[i];
}
if(l<r) p[r-1]=Cross_point(q[r-1].p1,q[r-1].p2+q[r-1].p1,q[r].p1,q[r].p2+q[r].p1);
}
while(l<r&&!Onleft(q[l],p[r-1])) r--;
if(r-l<=1) return ans;
p[r]=Cross_point(q[r].p1,q[r].p2+q[r].p1,q[l].p1,q[l].p2+q[l].p1);
for(ll i=l;i<=r;i++) ans.p[i-l]=p[i];
ans.n=r-l+1;
return ans;
}
回复
共 6 条回复,欢迎继续交流。
正在加载回复...