Kalindrome Array
题意翻译
对于长度为 $m$ 的序列 $b$,我们称 $b$ 是「回文的」,当且仅当对于所有 $i\in[1,m]$,都有 $b_i=b_{m-i+1}$。特别的,空序列也是回文的。
对于一个序列,我们称其是「可爱的」,当且仅当且满足如下条件:
- 存在数 $x$,使得删除序列中若干值等于 $x$ 的元素后,序列是回文的。(删除元素后,剩余元素会并在一起)
需要注意的是,你并不需要删除所有值等于 $x$ 的元素,并且,你也可以选择不删除任何元素。
例如:
- $[1,2,1]$ 是可爱的,因为你不需要删除任何一个数,其本身就是回文的。
- $[3,1,2,3,1]$ 是可爱的,因为你可以选择 $x=3$,然后删除所有值等于 $3$ 的元素,将其变为回文的。
- $[1,2,3]$ 则不是可爱的。
现在蓝给出了一个长度为 $n$ 的序列 $a$,她希望你能帮她确定其是否是可爱的。
本题多组数据,数据组数为 $t$,会在输入的开头给出。对于每组数据,如果给出的序列 $a$ 是可爱的,请输出 `YES`,否则输出 `NO`。
题目数据满足:$1 \leq t \leq 10^4$,$1 \leq n \leq 2\times10^5$,$1 \leq a_i \leq n$,$1 \leq \sum n \leq 2\times10^5$。
题目描述
An array $ [b_1, b_2, \ldots, b_m] $ is a palindrome, if $ b_i = b_{m+1-i} $ for each $ i $ from $ 1 $ to $ m $ . Empty array is also a palindrome.
An array is called kalindrome, if the following condition holds:
- It's possible to select some integer $ x $ and delete some of the elements of the array equal to $ x $ , so that the remaining array (after gluing together the remaining parts) is a palindrome.
Note that you don't have to delete all elements equal to $ x $ , and you don't have to delete at least one element equal to $ x $ .
For example :
- $ [1, 2, 1] $ is kalindrome because you can simply not delete a single element.
- $ [3, 1, 2, 3, 1] $ is kalindrome because you can choose $ x = 3 $ and delete both elements equal to $ 3 $ , obtaining array $ [1, 2, 1] $ , which is a palindrome.
- $ [1, 2, 3] $ is not kalindrome.
You are given an array $ [a_1, a_2, \ldots, a_n] $ . Determine if $ a $ is kalindrome or not.
输入输出格式
输入格式
The first line contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The description of the test cases follows.
The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ) — the length of the array.
The second line of each test case contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 1 \le a_i \le n $ ) — elements of the array.
It's guaranteed that the sum of $ n $ over all test cases won't exceed $ 2 \cdot 10^5 $ .
输出格式
For each test case, print YES if $ a $ is kalindrome and NO otherwise. You can print each letter in any case.
输入输出样例
输入样例 #1
4
1
1
2
1 2
3
1 2 3
5
1 4 4 1 4
输出样例 #1
YES
YES
NO
YES
说明
In the first test case, array $ [1] $ is already a palindrome, so it's a kalindrome as well.
In the second test case, we can choose $ x = 2 $ , delete the second element, and obtain array $ [1] $ , which is a palindrome.
In the third test case, it's impossible to obtain a palindrome.
In the fourth test case, you can choose $ x = 4 $ and delete the fifth element, obtaining $ [1, 4, 4, 1] $ . You also can choose $ x = 1 $ , delete the first and the fourth elements, and obtain $ [4, 4, 4] $ .