摘要: 该题应该有很多的解法,想过用二分查找,但是排序操作的复杂度让我们伤不起。这里用Splay来实现是很方便的。首先插入一个点,即第一个点,然后再依次用二叉排序树方式插入当前点,再把该点旋转到根部(这样方便我们找前驱和后继,否则需要中序遍历整棵树来确定),再在存在前驱和后继的情况下寻找前驱和后继。接下来就很好办了。代码如下:#include <cstdlib>#include <cstdio>#include <cstring>#include <algorithm>#define L(x) tree[x].ch[0]#define R(x) tree 阅读全文
posted @ 2012-06-17 13:57 沐阳 阅读(338) 评论(0) 推荐(0) 编辑