$Codeforces\ 522D\ Closest\ Equals$ 线段树

正解:线段树

解题报告:

传送门$QwQ$

说句题外话,,,这是我翻$csdn$的时候发现我去年九月份写的题解,,,认真提问为什么我去年这个时候就会做这种题了可是我到现在依然这么菜昂$kk$,,,感觉一年过去了我完全麻油进步昂呜,,,

题目大意是说给定一个数列,然后有若干次询问,每次询问一个区间内相同数字之间距离最近是多少$QwQ$.如果不存在相同数字输出-1就成$QwQ$

考虑先预处理出每个点的$pre$和$lst$,就前一个相同数字的位置和后一个相同数字的位置$QwQ$,然后在线段树上维护下每个点到达前一个相同数字的最短距离

然后对询问按左端点排序,每次查询右端点区间内的$min$就成,然后删去数的话就把它后一个数字的那个最短距离$update$成$inf$就成鸭$QwQ$

然后就做完了?$QwQ$(话说这个为什么是个黑昂,,,什么瞎评分昂_(:з」∠)_

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/11456652.html