题意: 给一个整数序列,多达10万个,问:有多少个区间满足“区间最大元素与最小元素之差不超过k”.k是给定的. 思路: 如果穷举,有O(n*n)复杂度.可以用ST算法先预处理每个区间最大和最小,O(nlogn).再扫一遍整个序列,两个指针L,R用于这样判断:如果A[L,R]这个区间满足要求,则R++,否则统计ans+=R-L,且l++.因为在[L,R]这个区间是满足要求的,那么以L开头的,[L,L].[L,L+1]...[L,R-1]就都是满足要求的,刚好R-L个. #include <bits…