使用 FHQ-Treap 实现时,在上传更新 Update
函数中
void Update(int rt) {
if(!rt) return ;
trp[rt].sz = trp[trp[rt].l].sz + trp[trp[rt].r].sz + 1;
trp[rt].MIN = min({trp[rt].val, trp[trp[rt].l].MIN, trp[trp[rt].r].MIN});
}
将第 4 行的 trp[rt].val
改成 trp[rt].MIN
就 0 分,但是我已经在新建节点时将其设置成了 trp[rt].val
,不理解为什么这样子会挂。