P13785 [eJOI 2022] Longest Unfriendly Subsequence

题目描述

我们称一个序列 $b_1, b_2, \ldots, b_m$ 是 **不友好** 的,当且仅当满足以下条件: - 若 $1 \leq i < j \leq m$ 且 $j - i \leq 2$,则有 $b_i \neq b_j$。 换句话说,一个序列是 **不友好** 的,当且仅当任意两个距离不超过 2 的元素都不相同。 现在给定一个序列 $a_1, a_2, \ldots, a_n$。请找出它的最长 **不友好** 子序列的长度。 一个序列 $c$ 是序列 $d$ 的子序列,当且仅当 $c$ 可以通过从 $d$ 中删除若干(可能为零个,也可能为全部)元素得到。例如,$(1, 3, 5)$ 是 $(1, 2, 3, 4, 5)$ 的子序列,而 $(3, 1)$ 不是。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^5$),表示测试用例的数量。接下来依次给出每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 2 \cdot 10^5$),表示序列的长度。 第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示序列 $a$ 的元素。 保证所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示序列 $a$ 的最长不友好子序列的长度。

说明/提示

### 样例解释 在第一个测试用例中,最长的不友好子序列为 $(1, 2)$ 或 $(2, 1)$。例如,子序列 $(1, 2, 1)$ 就不是不友好的,因为它的第 1 个和第 3 个元素相同。 在第二个测试用例中,最长的不友好子序列是 $(1, 2, 3, 1, 2, 3)$。显然,整个序列本身不是不友好的,因此答案为 6。 在第三个测试用例中,最长的不友好子序列是 $(1, 10, 100, 1)$。 ### 评分规则 1. (3 分):$a_i \leq a_{i+1}$ 2. (6 分):$n \leq 8$ 3. (8 分):所有测试用例中 $n$ 的总和不超过 500 4. (10 分):$a_i \leq 3$ 5. (10 分):$a_i \leq 10$ 6. (20 分):所有测试用例中 $n$ 的总和不超过 10000 7. (43 分):无额外限制 --- 翻译由 ChatGPT-5 完成