定义

笛卡尔树是一种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
猜你喜欢
相关资源
相似解决方案