传送门
显然只用考虑长度为的等差序列,
设为连续的项
发现
考虑枚举,判断存不存在
开一个桶记录
然后你发现的暴力了
#include <bits/stdc++.h>
#define MAXN 1000005
using namespace std;
inline int read(){
int x=0,f=1;
char ch=getchar();
while (ch<'0'||ch>'9'){
if (ch=='-') f=-1;
ch=getchar();
}
while (ch>='0'&&ch<='9'){
x=(x<<3)+(x<<1)+(ch^'0');
ch=getchar();
}
return x*f;
}
int num[MAXN],cnt[MAXN];
int main(){
int t=read();
while (t--){
int n=read();
memset(cnt,0,sizeof(cnt));
memset(num,0,sizeof(num));
for (register int i=1;i<=n;++i){
num[i]=read();
cnt[num[i]]=i;
}
bool flag=false;
for (register int i=1;i<=n;++i){
for (register int j=i+1;j<=n;++j){
if (cnt[num[j]-num[i]+num[j]]>j){
flag=true;
break;
}
}
if (flag) break;
}
puts(flag?"Y":"N");
}
}```