P12568 [UOI 2023] An Array and Range Additions
题目描述
给定一个长度为 $n$ 的整数数组 $a$。
你可以通过**加法操作**来修改数组。要执行**加法操作**,你需要依次完成以下三个步骤:
- 选择任意整数 $x$。
- 选择数组中的任意子数组 $[l;r]$。
- 将 $x$ 加到所选子数组的每个元素上(即对 $l \le i \le r$ 执行赋值操作 $a_i \leftarrow (a_i + x)$)。
找到使数组 $a$ 中所有元素两两不同的最小**加法操作**次数。
输入格式
第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$)——数组的长度。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le 10^9$)——数组的元素。
输出格式
输出一个整数——使数组 $a$ 中所有元素两两不同的最小**加法操作**次数。
说明/提示
在第一个样例中,数组 $a$ 的所有元素已经是两两不同的。
在第二个样例中,应用两次**加法操作**,参数分别为 $x=-3$、$l=1$、$r=2$ 和 $x=-1$、$l=1$、$r=3$ 后,数组 $a$ 变为 $[-2, -1, 1, 3, 2]$。
在第三个样例中,应用两次**加法操作**,参数分别为 $x=-3$、$l=4$、$r=8$ 和 $x=-10$、$l=7$、$r=9$ 后,数组 $a$ 变为 $[2, 3, 1, -2, 0, -1, -12, -10, -7]$。
### 评分标准
- ($9$ 分):数组 $a$ 的所有元素均为 $1$。
- ($15$ 分):对于 $1 \le i \le n$,$1 \le a_i \le 2$;对于 $1 \le i < n$,$a_i \le a_{i+1}$。
- ($14$ 分):$n \le 8$。
- ($17$ 分):$a_1 = a_n$。
- ($12$ 分):$n \le 2000$。
- ($12$ 分):对于 $1 \le i \le n$,$1 \le a_i \le 100$。
- ($21$ 分):无额外限制。
翻译由 DeepSeek V3 完成