bzoj1078
来源:互联网 发布:软件测试费用标准 编辑:程序博客网 时间:2024/06/14 05:39
看了一节课才看懂。 想到的人真的是大神啊! 首先我们去找最后插入的点 然后最后插入的点显然有两个性质
1 它是一直网左边走的点
2 它没有右子树 (脑补一下插入停止的两种情况)
然后这显然这只是个必要条件。
然后我们考虑一个新插入的点的祖先若满足了上述性质(其实是说我们假设满足新插入的点是满足这个性质比较下面的一个点。。。)那么他的祖先在他插入之前都是只有右子树没有左子树的(除非新插入的节点是叶子节点),然后再插入新节点的话。。。那么新节点好像肯定是叶子节点。。。所以矛盾
由此得最后插入的节点,要么是满足1 2性质的深度最小节点 要么是满足1 2 性质深度最小节点的左节点(如果左节点是叶子的话)
如果你觉得这个证明不够严谨的话可以画画看。。。左节点是叶子的情况。先插自己或者是左叶子节点树的形态是一样的(好绕口)
然后为了字典序最小。所以能选左叶子节点就应该选来。否则就是满足1 2 性质的深度最小节点。
然后选定这个节点删除之后要恢复树的形态。分个类然后往上爬的过程中一直交换左右子树即可。(或者好像也可以发现左叶子节点直接把他和他父亲一直删除)
思维复杂度很高的一道题。
0 0
- bzoj1078
- 可合并堆。。。BZOJ1078
- bzoj1078 斜堆 推理
- BZOJ1078: [SCOI2008]斜堆
- bzoj1078【SCOI2008】斜堆
- [BZOJ1078]SCOI2008斜堆
- bzoj1078: [SCOI2008]斜堆
- 【SCOI2008】bzoj1078 斜堆
- 【bzoj1078】[SCOI2008]斜堆
- BZOJ1078 [SCOI2008]斜堆
- [BZOJ1078][SCOI2008]斜堆(可并堆)
- Java面向对象-构造方法,this关键字
- Hibernate缓存
- 2016 大连网络赛 hdu 5876 ACM ICPC(补图求最短路)
- Android 打造自己的滚动选择器ScrollSelector
- Hibernate的出现和Hinbernate的简单模拟实现
- bzoj1078
- hdu 5875 ACM/ICPC Dalian Online 1008 Function
- 重载赋值函数与复制构造函数
- 13. Roman to Integer
- 技术博客地址
- 原生表单提交的方式
- HDU3339-In Action(最短路+01背包)
- 用OpenCV实现Photoshop算法(七): 调整色相饱和度
- 不同等级raid的读写性能,优缺点,所需最小硬盘数以及结构