警示后人10pts&50pts
查看原帖
警示后人10pts&50pts
933802
ICU152_lowa_IS8楼主2025/4/4 16:34

10pts:

a[i].bi+query1(1,0,c,(n-1)/2)+query2(1,0,c,(n-1)/2)<=f
a[i].bi+query1(1,0,200000,(n-1)/2)+query2(1,0,200000,(n-1)/2)<=f

权值线段树的上界不是c

50pts:

int query1(int p,int l,int r,int k){
	if(l==r){
		return k*l;//本行如果写tree1[p].val会错,原因是该位置数量可能大于k个
	}
	int mid=l+r>>1;
	if(tree1[p<<1].cnt>=k){
		return query1(p<<1,l,mid,k);
	}
	else{
		return query1(p<<1|1,mid+1,r,k-tree1[p<<1].cnt)+tree1[p<<1].val;
	}
}
2025/4/4 16:34
加载中...