[BZOJ4382][POI2015]Podział naszyjnika 优先队列+线段树 hash+Twopoints
听说hash做法很简单。。。不管了,我写的是数据结构。。。以下不要计较开闭区间等等。考虑从左往右枚举右切口r,假设左切口l合法,那么对于每种颜色,要么分布在[1,l]∪[r,n],要么分布在[l,r]。对于满足第一种情况的颜色,记prec为其r在之前最后一次出现的位置,那么要满足l>max{prec},可以用优先队列维护(至于为什么先往后看)。对于满足第二种情况的颜色,记firstc和lastc为