ChengJY_ @ 2021-11-08 20:44:34
RT
这道题拿treap打的,求rank的时候出了点小锅。
我在普通版的代码下写的是
int ran(int p,int k){
if(!p) return 0;
if(v[p]==k) return size[son[p][0]]+1;
if(v[p]<k) return size[son[p][0]]+num[p]+ran(son[p][1],k);
if(v[p]>k) return ran(son[p][0],k);
}
然后这里Wa爆了
然后把
if(!p) return 0;
改成
if(!p) return 1;
就过了。
为什么呢,是原题数据太水了吗(
by SDNetFriend @ 2021-11-08 22:50:58
rank 的定义应该是比当前数小的数的个数