【题解】蒜头君的项链
题目大意
给出有\(n\)个元素的序列\(a\),现在将序列分成若干连续的段,每个段的不同元素种类数不能超过\(k\)。对于\(1\le k \le n\)的每一个正整数\(k\),计算最少划分成多少段。
\(1\le n \le 10^5,~1 \le a_i \le n\)
……
今天16岁了!!!
随笔一篇
在数轴上有\(n\)个闭区间从\(1\)至\(n\)编号,第\(i\)个闭区间为\([l_i,r_i]\)。现在要从中选出\(m\)个区间,使得这\(m\)个区间共同包含至少一个位置。换句话说,就是使得存在一个\(x\),对于每个被选中的区间\([l_i,r_i]\),都有\(l_i \le x \le r_i\)。
对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。
区间 \([l_i,r_i ]\)的长度定义为\((r_i-l_i)\),即等于它的右端点的值减去左端点的值。求所有合法方案中最小的花费。如果不存在合法的方案,输出\(−1\)。
\(1 \le m \le n,~1 \le n \le 5 \times 10^5,~1 \le m \le 2\times 10^5,~0\le l_i \le r_i \le 10^9\)