为啥在查询排名时没有右儿子应直接返回而不进行splay

P3369 【模板】普通平衡树

```cpp int rnk(int x) { int res = 0, cur = rt; while (1) { if (!cur) return res + 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(x)) return res + 1; cur = rs(cur); } } } ``` 上述代码同样 WA on #2。
by _Skyfire_ @ 2023-12-29 17:23:16


@[_Skyfire_](/user/381949) 是rs(cur)不是rs(x)吧
by Rainbow_qwq @ 2023-12-29 17:53:07


x是1e7,你数组越界了什么都有可能发生吧
by Rainbow_qwq @ 2023-12-29 17:53:56


@[Rainbow_qwq](/user/151935) 破案了,即使我rs(cur)也趋势,原因竟然是因为cur可能是空的。我把空节点转上根了
by _Skyfire_ @ 2023-12-29 18:49:00


|