题解:P14638 [NOIP2025] 序列询问 / query(民间数据)

· · 题解

好像一个没有任何难度的做法。

直接支配对启动。对于右端点 i,维护 [i-pr,i-pl] 的前缀最小值,可以从大往小扫右端点,队列维护,前面删后面加之类的。

然后对于这个过程中的一个左端点区间 [l,r]a_l 是最小值,会在右端点属于 [l+pr,r+pl] 时存在,st 表找到区间内最大值,就形成一个支配对。每当前缀最小值相关区间变化,就加入支配对,前面删除,后面加入,以及在每个右端点的区间最小值对应区间各造成 O(n) 对支配对。

然后就排序,区间取 min 就完了。

排序是不是可以扔掉,我不会,反正常数小,相信评测机实力。