社区讨论

警示后人10pts&50pts

P3963[TJOI2013] 奖学金参与者 2已保存回复 1

讨论操作

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

当前回复
1 条
当前快照
1 份
快照标识符
@mdx12huy
此快照首次捕获于
2025/08/04 19:29
7 个月前
此快照最后确认于
2025/11/04 08:55
4 个月前
查看原帖
10pts:
CPP
a[i].bi+query1(1,0,c,(n-1)/2)+query2(1,0,c,(n-1)/2)<=f
CPP
a[i].bi+query1(1,0,200000,(n-1)/2)+query2(1,0,200000,(n-1)/2)<=f
权值线段树的上界不是c
50pts:
CPP
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;
	}
}

回复

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

正在加载回复...