P4198 楼房重建

个人总结

这题关键是要把 pushup2 写好。

int pushup(double cnt, int x, int l, int r){
    if (t[x].mx <= cnt) return 0;//剪枝
    if (a[l] > cnt) return t[x].len;//剪枝
    if (l == r) return a[l] > cnt;//优化
    int mid = (l + r) >> 1;
    if (t[x * 2].mx <= cnt) return pushup(cnt, x * 2 + 1, mid + 1, r);//合并
    else return pushup(cnt, x * 2, l, mid) + t[x].len - t[x * 2].len;//合并
}
posted @ 2026-08-27 20:27  yingMC  阅读(3)  评论(0)    收藏  举报