题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 关于笛卡尔树的构建:https://www.cnblogs.com/reverymoon/p/9525764.html 笛卡尔树在 key 上满足二叉搜索树,在 value 上满足堆:一般 key 就是原序列里的位置,这样一个子树对应原序列的一段连续区间. 这个构建方法就是给最右链维护单调栈,新进来第 i 个元素之后,根据 value 是堆的规则弹栈,然后把自己的左孩子设成最后弹掉的那个点,把自己…