关于平衡树询问某个树上不存在的值的排名
  • 板块学术版
  • 楼主happybob
  • 当前回复12
  • 已保存回复12
  • 发布时间2022/5/9 21:59
  • 上次更新2023/10/28 01:47:34
查看原帖
关于平衡树询问某个树上不存在的值的排名
332914
happybob楼主2022/5/9 21:59

刚学平衡树,跟着 AcWing 打了个维护树上存在的值的排名:

int get_fake_rank(int p, int key)
	{
		if (!p) return 0;
		if (tr[p].key == key) return tr[tr[p].l].size + 1;
		if (tr[p].key > key) return get_fake_rank(tr[p].l, key);
		return tr[tr[p].l].size + tr[p].cnt + get_fake_rank(tr[p].r, key);
	}

rt,如何维护不存在的值呢?

我目前想到的是,求这个值的前驱,然后加上这个前驱出现的次数,但是测试加强版发现不太对,正确方法是什么呢?

问题应该很弱智

2022/5/9 21:59
加载中...