定义 笛卡尔树是一种key的二叉搜索树,val的小顶堆,Treap是特殊的笛卡尔树。如图,中序排序为key(此处为序列下标)的升序排列,且父节点的val小于子节点的val。 构造 使用栈始终维护以根节点为开始的右链。按key从小到大依次入栈。加入点u时,找到栈中第一个val小于val[u]的点x。把x的右儿子变成点u的左儿子,点u作为点x的右儿子。(保持中序遍历key有序)。 应用 HDU 1506 相关文章: 2021-04-07 2021-11-01 2021-10-15 2021-08-05