求助线段树二分
  • 板块学术版
  • 楼主_8008008
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/20 20:01
  • 上次更新2024/10/20 21:21:38
查看原帖
求助线段树二分
803885
_8008008楼主2024/10/20 20:01
int segtwocut(int u,int num){
	if(t[u].l==t[u].r)return t[u].l;
	int mid=(t[u].l+t[u].r)/2;
	int val=sum(t[u].l,mid,u*2);
	if(num<=val){
		segtwocut(u*2,num);
	}else{
		segtwocut(u*2+1,num-val);
	}
}

意思为找出最小的 xx 满足 numsum(1,x)num\le sum(1,x)

2024/10/20 20:01
加载中...