先开始心血来潮,想用 treap 来写在线的逆序对,但是发现了打了上去只有30分。
后面发现是数据里面有重复的元素,导致treap的排名函数出了问题。
比如说:
2 1 1
我的 treap 输出 111,很显然是不对的。
原因就在于 treap 排名的定义是排名定义为比当前数小的数的个数 +1,导致重复元素都会当做同一个排名来看待。
请问有什么方法可以解决这个问题?