Link
一道很好的复杂度均摊题目 。
只需要考虑删除操作时的时间复杂度 。保证复杂度的重点之一是精确定位到所有包含最大值的区间,即不去碰多余的区间 。每次删除操作会删除若干个整个区间,以及至多两个区间被删一半 。
由于一共最多插入了 \(O(m\log n)\) 个区间,所以前一半的复杂度是对的 。
对于后一半,直接暴力将区间切半向下递归,于是两个儿子要么一个留下一个递归,要么一个删掉一个递归,递归层数至多 \(O(\log n)\),于是这一步复杂度也至多 \(O(m\log n)\) 。
总共复杂度就俩 \(\log\)(注意其中一个是 set
的,线段树只有一个 \(\log\)!)
【P7476 苦涩 题解】
经验总结扩展阅读
- [题解] Codeforces Global Round 22 1738 A B C D E F 题解
- 基础&进阶 线段树学习笔记(一) | P3372 【模板】线段树 1 题解
- 移动端touch拖动事件和click事件冲突问题解决
- LOL英雄联盟进入游戏无限崩溃问题解决方法?
- 奶茶怎么做顺滑不苦涩
- 常见蓝牙耳机问题解决方案 蓝牙耳机有一个连不上
- iPhone手机网络连接问题解决办法 苹果手机早上自动连接wifi怎么关
- iPhone换屏常见问题解析 苹果x换了外屏为什么没有原彩显示了
- 冬笋煮多久熟能去苦涩
- 问题解决的过程包括哪四个阶段