lqb#P25126. 山峰子序列

    ID: 314 传统题 1000ms 256MiB 尝试: 3 已通过: 1 难度: 5 上传者: 标签>动态规划 DP线性 DP基础算法二分蓝桥杯

山峰子序列

题目描述

一个序列 T=[t1,t2,,tk]T = [t_1, t_2, \cdots, t_k] 是“山峰序列”当且仅当存在一个长度为 mmmm 可任意选)的下标对序列 (l1,r1),(l2,r2),,(lm,rm)(l_1, r_1), (l_2, r_2), \cdots, (l_m, r_m) 满足:

  • l1=1l_1 = 1rm=kr_m = k
  • ri>lir_i > l_i
  • ri1+1=lir_{i-1} + 1 = l_i
  • rili0(mod2)r_i - l_i \equiv 0 \pmod{2}t(li+ri)/2t_{(l_i + r_i)/2} 是序列 TT 在区间 [li,ri][l_i, r_i] 中的最大值;
  • 序列 TT 在区间 [li,li+ri2][l_i, \dfrac{l_i + r_i}{2}] 严格单调递增,在区间 [li+ri2,ri][\dfrac{l_i + r_i}{2}, r_i] 严格单调递减。

给定一个长度为 nn 的整数数组 [a1,a2,,an][a_1, a_2, \cdots, a_n],求其最长的子序列 TT 满足 TT 是“山峰序列”,输出其长度,若不存在则输出 0。

说明:下标对序列 (li,ri)(l_i, r_i) 基于子序列 TT 的下标,TT 的下标从 1 开始。

输入格式

输入的第一行包含一个正整数 nn

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

10
1 3 2 4 1 2 3 4 3 1
8

解释 #1

可取子序列 T=[1,3,2,2,3,4,3,1]T = [1, 3, 2, 2, 3, 4, 3, 1],其长度为 8 且为一个“山峰序列”,下标对序列为 (1,3),(4,8)(1, 3), (4, 8)

数据范围

  • 对于 20%20\% 的评测用例,1n501 \le n \le 50
  • 对于 40%40\% 的评测用例,1n2001 \le n \le 200
  • 对于所有评测用例,1n20001 \le n \le 20000ai1060 \le a_i \le 10^6