然后关于本题这么做,我们考虑扫描线,扫到 i 时,显然我们并不能直接对每个集合进行维护,我们设 S_{l,r} 表示区间 [l,r] 执行该算法的最终集合,我们发现对于固定的 r 关于 l 有类似单调性的性质,我们发现 S_{j,i} 与 S_{j+1,i} 的大小差距不大于 1,且 S_{j+1,i} 是 S_{j,i} 的一个子序列,这意味着每个元素的出现集合是一个前缀,我们扫到 i 时维护每个元素 x 的前缀 b_x, 表示其位置,我们考虑加入 x 带来的改变,对于第一个大于 x 的元素一点机会都没有啊,直接寄了,其前缀变为 0。而对于后面的数以此类推,我们发现改变的位置可以用一个序列 c 表示,满足 c_0=x,c_i>c_{i-1},b_i>b_{i-1},且 c 字典序最小,改变是 b_{c_{i}}=b_{c_{i-1}},b_x=i。