`grank` 要判定有没有右儿子,如果没有右儿子了就 `splay` 上去,直接返回。
```cpp
if (!rs(cur)) {
if (cur) splay(cur);
return res + 1;
}
```
by _Skyfire_ @ 2024-01-10 15:23:40
@[_Skyfire_](/user/381949) orz,谢谢,回关
by saumtam @ 2024-01-10 15:38:46
@[_Skyfire_](/user/381949) 和楼主挂在一个地方了,想问下应该加到哪?
by zxh923 @ 2024-01-21 20:24:05
@[zxh923](/user/795784) 查排名
by _Skyfire_ @ 2024-01-21 20:28:34
@[_Skyfire_](/user/381949) 这个知道,是rank的哪?
by zxh923 @ 2024-01-21 20:32:49
@[zxh923](/user/795784)
```cpp
int rnk(int x) {
int res = 0, cur = rt;
while (1) {
if (x < val[cur]) cur = ls(cur);
else {
res += siz[ls(cur)];
if (val[cur] == x)
return splay(cur), res + 1;
res += cnt[cur];
+ if (!rs(cur)) {
+ if (cur) splay(cur);
+ return res + 1;
+ }
cur = rs(cur);
}
}
}
```
by _Skyfire_ @ 2024-01-21 20:35:20
@[_Skyfire_](/user/381949) 好的,谢谢啦
by zxh923 @ 2024-01-21 20:37:37
都是被$OI-Wiki$模板坑了的可怜孩子qwq
by No0Chenquanlin @ 2024-01-26 19:39:12