CF1324B.Yet Another Palindrome Problem

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Yet Another Palindrome Problem

题目描述

给定一个由 nn 个整数构成的数组 aa

你的任务是判断 aa 是否存在长度至少为 33 的回文子序列。

回忆一下,如果数组 bb 可以通过从数组 aa 中删除若干(可以为零)元素(不要求连续),且不改变剩余元素的顺序得到,则称 bbaa 的一个子序列。例如,[2][2][1,2,1,3][1, 2, 1, 3][2,3][2, 3] 都是 [1,2,1,3][1, 2, 1, 3] 的子序列,但 [1,1,2][1, 1, 2][4][4] 不是。

另外,回文数组是指正着读和反着读都相同的数组。换句话说,长度为 nn 的数组 aa 是回文的,当且仅当对于所有 1in1 \leq i \leq n,都有 ai=ani+1a_i = a_{n - i + 1}。例如,[1234][1234][1,2,1][1, 2, 1][1,3,2,2,3,1][1, 3, 2, 2, 3, 1][10,100,10][10, 100, 10] 都是回文数组,但 [1,2][1, 2][1,2,3,1][1, 2, 3, 1] 不是。

你需要回答 tt 组独立的测试用例。

输入格式

输入的第一行包含一个整数 tt1t1001 \leq t \leq 100),表示测试用例的数量。

接下来的 2t2t 行描述每个测试用例。每个测试用例的第一行包含一个整数 nn3n50003 \leq n \leq 5000),表示数组 aa 的长度。第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \leq a_i \leq n),其中 aia_i 是数组 aa 的第 ii 个元素。

保证所有测试用例中 nn 的总和不超过 50005000n5000\sum n \leq 5000)。

输出格式

对于每个测试用例,输出一行答案。如果 aa 存在长度至少为 33 的回文子序列,输出 "YES"(不含引号);否则输出 "NO"。

说明/提示

在第一个样例中,数组 aa 存在子序列 [1,2,1][1, 2, 1],它是回文的。

在第二个样例中,数组 aa 存在两个长度为 33 的回文子序列:[2,3,2][2, 3, 2][2,2,2][2, 2, 2]

在第三个样例中,数组 aa 不存在长度至少为 33 的回文子序列。

在第四个样例中,数组 aa 存在一个长度为 44 的回文子序列:[1,2,2,1][1, 2, 2, 1](并且存在两个长度为 33 的回文子序列,都是 [1,2,1][1, 2, 1])。

在第五个样例中,数组 aa 不存在长度至少为 33 的回文子序列。

由 ChatGPT 4.1 翻译

样例

5
3
1 2 1
5
1 2 2 3 2
3
1 1 2
4
1 2 2 1
10
1 1 2 2 3 3 4 4 5 5
YES
YES
NO
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验