题意略 (vjudge上有中文体面)
一道很标准的离线查询问题 可以直观的想到首先要将n个数中相同且距离最近的两个数作为一条线段剥离出来存到结构体当中 这时常规的做法就是用线段树或者树状数组 但是要注意如果直接对线段进行预处理在在线处理每一个查询的数对是比较麻烦的 就说样例1 1 2 3 2 其中一条线段为【3,5】 如果直接把3到5的值都设为2的话 那么出现了【4,5】这样的查询是就会出错 所以需要离线查询可以看到倘若一个查询数对必然要包含一条线段才能更新其计数器 所以这里可以采取排序的方法 将左端大的排在前面 左端相同时优先将查询对放在前面 然后对于每一条线段需要更新时就往后更新最小值 这样就可以保证每次离线查询时得出正确的答案一道很标准的离线查询问题 可以直观的想