题目链接
题意:一个长为n(<=2000)只由1或2组成的序列,可以将一段区间【l,r】的元素反转, 求反转后的非递减子序列的最长长度
int main()
{
int n;
while(~scanf("%d",&n))
{
int a=0,ab=0,aba=0,abab=0;
rep(i,0,n)
{
int x;
scanf("%d",&x);
if(x==1)
a++,aba++;
else
ab++,abab++;
ab=max(ab,a);
aba=max(aba,ab);
abab=max(abab,aba);
}
printf("%d\n",abab);
}
return 0;
}