CF1635F 做题记录
CF1635F 做题记录
考虑对整个序列做询问的情况。
枚举 \(i\) 再枚举 \(j\) 进行更新显然超时。
发现一些又远又大的点也被枚举到,考虑缩小每次 \(i\) 所枚举的点。
发现若存在 \(i \le j < k\) 且 \(w_j < w_k\),\((i,j)\) 必然优于 \((i,k)\)。
据此,考虑钦定每个点 \(i\) 只去匹配左右两边 \(w\) 比自己小的点(减少点数量)。
先以位置差为优先。令 \(L_i\) 表示左边最近的 \(\le w_i\) 的位置。考虑反例,若存在 \(j < L_i\) 且 \(w_j < w_{L_i}\),会不会更好?其实不会,因为显然 \((j, L_i)\) 比 \((j, i)\),就算这种情况没统计到也完全没关系。(某种意义上也算错解不优?)
右边也类似。因此每个 \(i\) 有效点就只有 \((L_i,i)\) 和 \((i,R_i)\)。考虑询问,遂离线二维数点,搞定。

浙公网安备 33010602011771号