CF786C Till I Collapse
题目描述
Rick 和 Morty 想要找到 MR. PBH,但他们无法单独完成这件事。因此他们需要 Mr. Meeseeks 的帮助。他们已经生成了 $n$ 个 Mr. Meeseeks,排成一行,编号为 $1$ 到 $n$。每个 Mr. Meeseeks 都有自己的颜色,第 $i$ 个 Mr. Meeseeks 的颜色为 $a_i$。
Rick 和 Morty 正在集结他们的军队,他们想将 Mr. Meeseeks 分成若干个小队。他们不希望小队太花哨,所以每个小队中 Mr. Meeseeks 的颜色种类不超过 $k$ 种。此外,每个小队必须是 Mr. Meeseeks 排队中的一个连续子段。也就是说,对于每个 $1 \leq i \leq e \leq j \leq n$,如果编号为 $i$ 和编号为 $j$ 的 Mr. Meeseeks 在同一个小队里,那么编号为 $e$ 的 Mr. Meeseeks 也必须在那个小队中。
此外,每个小队都需要一个据点,而建造据点是要花钱的,所以他们希望小队的总数尽量少。
Rick 和 Morty 还没有最终确定 $k$ 的具体值,因此他们需要知道对于每个 $k$ 从 $1$ 到 $n$(包括 $1$ 和 $n$),最少需要多少个据点。
输入格式
输入的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示 Mr. Meeseeks 的数量。
第二行包含 $n$ 个用空格分隔的整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq n$),表示 Mr. Meeseeks 按顺序排列的颜色。
输出格式
输出一行共 $n$ 个用空格分隔的整数,第 $i$ 个整数表示当 $k$ 取 $i$ 时,最少需要多少个据点。
说明/提示
对于第一个样例测试用例,每种 $k$ 的最优分割方法示例如下:
1. $[1],[3],[4],[3,3]$
2. $[1],[3,4,3,3]$
3. $[1,3,4,3,3]$
4. $[1,3,4,3,3]$
5. $[1,3,4,3,3]$
对于第二个样例测试用例,每种 $k$ 的最优分割方法示例如下:
1. $[1],[5],[7],[8],[1],[7],[6],[1]$
2. $[1,5],[7,8],[1,7],[6,1]$
3. $[1,5,7],[8],[1,7,6,1]$
4. $[1,5,7,8],[1,7,6,1]$
5. $[1,5,7,8,1,7,6,1]$
6. $[1,5,7,8,1,7,6,1]$
7. $[1,5,7,8,1,7,6,1]$
8. $[1,5,7,8,1,7,6,1]$
由 ChatGPT 5 翻译