treap增加操作查询操作

//递归到叶子节点,一路维护信息即可
//查询排名

int query_rank(int k,int x){
	if (k==0) return 0;
	if (tr[k].v==x) return tr[tr[k].l].size+1;
	else if (x>tr[k].v)
	   return tr[tr[k].l].size+tr[k].w+query_rank(tr[k].r,x);
	else return query_rank(tr[k].l,x);
} 

//查询排名对应的个数

int query_num(int k,int x){
	if (k==0) return 0;
	if (x<=tr[tr[k].l].size)
	   return query_num(tr[k].l,x);
	else if (x>tr[tr[k].l].size+tr[k].w)
	  return query_num(tr[k].r,x-tr[tr[k].l].size-tr[k].w);
	else return tr[k].v;
} 
全部评论

相关推荐

zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 12:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务