社区讨论

提供一种无需卡精度的判断大小方式

P4097【模板】李超线段树 / [HEOI2013] Segment参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhjkgywu
此快照首次捕获于
2025/11/04 04:02
4 个月前
此快照最后确认于
2025/11/04 04:02
4 个月前
查看原帖
CPP
bool big(int a,int b,int k){
	long long d1=x[a].u,d2=x[b].u;
	long long fz1=1ll*(k-x[a].l)*(x[a].d-x[a].u);
	long long fz2=1ll*(k-x[b].l)*(x[b].d-x[b].u);
	long long fm1=x[a].r-x[a].l,fm2=x[b].r-x[b].l;
	if(!fm1)d1=max(x[a].u,x[a].d),fz1=0;
	if(!fm2)d2=max(x[b].u,x[b].d),fz2=0;
	if(fm1)d1*=fm1;
	if(fm2)d2*=fm2;
	if(fm1)d2=(d2+fz2)*fm1;
	else d2=d2+fz2;
	if(fm2)d1=(d1+fz1)*fm2;
	else d1=d1+fz1;	
    if(d1!=d2)return d1>d2;
    return a<b;
}
l,r,u,dl,r,u,d 分别表示 x0,x1,y0,y1,(x0<=x1)x0,x1,y0,y1,(x0<=x1)
a,ba,b 为线段编号

回复

1 条回复,欢迎继续交流。

正在加载回复...