P3607 [USACO17JAN] Subsequence Reversal P
题目描述
Farmer John 正在将他的 $N$ 头奶牛排成一列拍照($1 \leq N \leq 50$)。序列中第 $i$ 头奶牛的高度为 $a(i)$,Farmer John 认为如果奶牛队列中存在一个较长的按高度递增的子序列,那么这张照片会更具美感。
回顾一下,子序列是指从奶牛序列中选出的一组元素 $a(i_1), a(i_2), \ldots, a(i_k)$,这些元素位于一系列索引 $i_1 < i_2 < \ldots < i_k$ 处。如果满足 $a(i_1) \leq a(i_2) \leq \ldots \leq a(i_k)$,则称该子序列是递增的。
FJ 希望在他的奶牛排列中存在一个较长的递增子序列。为了确保这一点,他允许自己最初选择任意一个子序列并将其元素反转。
例如,如果我们有以下序列:
```
1 6 2 3 4 3 5 3 4
```
我们可以反转选中的元素:
```
1 6 2 3 4 3 5 3 4
^ ^ ^ ^
```
得到:
```
1 4 2 3 4 3 3 5 6
^ ^ ^ ^
```
注意被反转的子序列最终仍然使用最初占据的索引,而其他元素保持不变。
请找出在最多反转一个子序列的情况下,可能的最长递增子序列的长度。
输入格式
无
输出格式
无