由于这个题的查数 $k$ 的排名的操作很多,如果这个操作用split 和 merge 实现会常数巨大。
我当时就是把这个操作换成直接在FHQ上面查而不是使用 split 和 merge 就卡过去了
具体可以这么写:
```cpp
int fr(int v, int nma) {
int ans = 0;
int cur = rt[nma];
while(cur) {
if(val[cur] < v) ans += siz[ls[cur]] + 1, cur = rs[cur];
else cur = ls[cur];
}
return ans;
}
```
by _LiMLE_ @ 2023-03-24 20:39:13
如果还是卡不过去可以尝试把其他操作也从用 split + merge 实现改成朴素实现。
by _LiMLE_ @ 2023-03-24 20:40:09
@[guoxiangyu66](/user/681036)
by _LiMLE_ @ 2023-03-24 20:41:38
@[_LiMLE_](/user/480934) thx,开 O2 后卡过了
by OldDriverTree @ 2023-03-24 20:43:22