2184E 寻找有多少个子数组满足 k-exquisite,即相邻数字的差 > k。对任意 k [0, n-1] 都要有个解。 题解 不难想到 k 可以从大到小构建。 先新建差分数组,再按照其值从大到小排序,差分值为第一关键字降序, pos 第二关键字升序 我们发现,比如假设我们算好了 k = n - 1,当 k = n - 2 的时候,可以通过算贡献的方式,计算出新增的贡献。 可以发现当我们做到 k 时,我们从左到右枚举前面的 >= k 连续段任意一个 lpos 都会作为左端点,k 作为右端点,成为一个贡献。 而右边大于 k 的连续的都可以作为右断点, k 和 k 左边的 >= k 的连续段作为右断点。假设 k 左边的满足 >=k 的连续段长度为 l,右边连续段满足 >k 的的长度为 r。那么新增的贡献为 (lok + 1 + rok * (lok + 1))。 考虑边界情况,即 k = n - 1 的时候,我们发现这种规律也试用。 ...