D题 (详细)
STEP1:首先将数列归并排序用线段树储存
STEP2:对于修改我们可以使用二分查询在线段树上以logn的速度进行,把它所在的每一个区间的差分值O(1)修改两个数之间的差值(为什么要修改请看STEP3)
STEP3:对于判断是否有一个k能够使得题目条件成立,我们将相邻的两个数取差,可以使用hash这样可以做到O(n)预处理O(1)查询。
summulation:至此我们就以O(nlogn)的时间复杂度成功的做掉此题了
PS:我还不知道hash被卡掉的概率大不大,烦请各位聚聚告知了谢谢