题面 也就是说, 随机序列RMQ.(\(n \le 8388608\), \(m \le 8*10^6\)) 解法 我写了笛卡尔树+tarjan 然而听神仙说, 因为数据随机, 建完树暴力找lca就行, 跑的飞快...吊打std... 还有题解, 真是神仙做法... 设 \(p_i\) 表示比 \(a_i\) 大的前一个数所在的位置,那么 p 构成了一棵树. 若我们需要查询 [l, r] 的答案,只需找到 r 在这棵树上不小于 l 的祖先.于是我们可以按照 l 从大到小排序,一边向上查询祖先一边…