如果限制只有一个区间,考虑区间所有颜色,对于每一个颜色 \(c\),设其出现的位置是 \(i_1,i_2,i_3\dots i_k\),那么要求删除的区间要覆盖 \([i_1,i_{k-1}],[i_2,i_k]\) 之一。但是如果有多个区间,这样的限制就有了 \(O(nm)\) 个,不能接受。
换一个角度考虑限制。对于一个位置 \(i\),找到所有覆盖它的区间的最小的区间左端点 \(L_i\),那么有一个限制是 \([L_i,i]\) 中 \(a_i\) 只能出现一次。同理设 \([L_i,i]\) 中 \(a_i\) 出现的位置是 \(i_1,i_2,i_3\dots i_k\),那么要求删除的区间要覆盖 \([i_1,i_{k-1}],[i_2,i_k]\) 之一。
这样限制就只有 \(O(n)\) 个,并且显然这些限制是充要的。满足限制的最小区间可以双指针求出。