关于FHQ-Treap的Rank函数(根据值找排名)
  • 板块学术版
  • 楼主jwggg
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/8/16 21:16
  • 上次更新2023/11/4 10:25:23
查看原帖
关于FHQ-Treap的Rank函数(根据值找排名)
330714
jwggg楼主2021/8/16 21:16

	if(!root) return 0;
	else if(tree[root].val==x) return tree[tree[root].v[0]].size+1;
	else if(tree[root].val<x) return Rank(tree[root].v[0],x);
	else if(tree[root].val>x) return tree[tree[root].v[0]].size+1+Rank(tree[root].v[1],x);
	int l=0,r=0,k;
	split(root,x,l,r);
	k=tree[l].size+1;
  	merge(root,l,r);
	return k;

关于使用递归写法和直接用split、merge函数,上面的是错的(WA16),下面的是对的(AC),请问是我打挂了还是本来递归就不对(但是前驱后继改成递归是对的)

代码

2021/8/16 21:16
加载中...