如果线段树套FHQ TLE
查看原帖
如果线段树套FHQ TLE
341091
End_Sunset楼主2025/7/11 15:15

在线段树中记录区间最小值和最大值,根据 valvalrankrank 时,进行特判,可以极大地优化常数。

int Getrk(int p,int l,int r,int ql,int qr,int x){
	if(r<ql||qr<l) return 0;
	if(ql<=l&&r<=qr) {
		if(x>mx[p]) return r-l+1+(ql==l);
		if(x<mn[p]) return 0+(ql==l); //(ql==l)确保对于每一个询问rank多的1计算且仅计算1次
		return Tp_Getrk(tr[p],x)+(ql==l);
	}
	int mid=(l+r)>>1;
	return Getrk(Ls,l,mid,ql,qr,x)+Getrk(Rs,mid+1,r,ql,qr,x);
}
2025/7/11 15:15
加载中...