cf--contest1324:B. Yet Another Palindrome Problem+推理

传送门

B. Yet Another Palindrome Problem

题意

题意判断子序列是否为回文串,以往我们知道的是ai=aj-i-1,i到j这个区间都要满足这个条件怎i到j形成回文串,但是这个题不一样,如果一个集合的子序列构成长度大于3回文串则输出YES,否则输出NO。

思路

这个题其实就是一个贪心思想。i到j这个区间判断ai=aj && j-i大于1则成立。

代码

#include<cstdio>
#include<cmath>
using namespace std;
const int MAXN=5e3+5;
int arr[MAXN];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)	scanf("%d",&arr[i]);
		int flag=false;
		for(int i=1;i<=n;i++)
			for(int j=n;j>i;j--)
				if(j-i>=2 && arr[i]==arr[j])	flag=true;
		if(flag)	puts("YES");
		else	puts("NO");
	}
	return 0;
}
发布了67 篇原创文章 · 获赞 1 · 访问量 1310

猜你喜欢

转载自blog.csdn.net/qq_45249273/article/details/104832308