应该是处理判断是否为子序列那里出了问题
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,a[200005];
signed main(){
cin >> t;
while(t--){
int n;
cin >> n;
for(register int i = 1;i <= n;i ++ )cin >> a[i];
int tot = 0;
if(n % 2 == 0){
int mid = n / 2;
for(register int i = 1;i <= mid;i ++ ){
if(a[i] != a[i + mid]){
tot = 1;
break;
}
}
if(tot == 1)cout << "YES" << endl;
else cout << "NO" << endl;
}
else {
int mid = n / 2;
int r = mid + 1;
int ans1 = 0,ans2 = 0;
for(register int i = 1;i <= mid;i ++){
while(a[r] != a[i]){
r ++;
if(r > n){
ans1 = 1;
break;
}
}
if(r > n)break;
r ++ ;
}
r = 1;
for(register int i = mid + 2;i <= n;i ++){
while(a[r] != a[i]){
r ++;
if(r > mid + 1){
ans2 = 1;
break;
}
}
if(r > mid + 1)break;
r ++ ;
}
if(ans1 == 1 || ans2 == 1)cout << "YES\n";
else cout << "NO\n";
}
}
return 0;
}