#iai19b1. 最长锯齿子序列(Longest Zigzag Subsequence)
最长锯齿子序列(Longest Zigzag Subsequence)
最长锯齿子序列(Longest Zigzag Subsequence)
题目描述
给定 个整数组成的序列 ,请从中挑出尽量长的子序列,形成一个锯齿序列。所谓锯齿序列,就是它的差分序列(由相邻数字的差组成的序列)是正负交替的。为了避免差为 0 时不方便区分正负,保证给定的每个数字都不相同。
例如给定的序列是 ,那么它的子序列 是一个锯齿序列,因为它的差分序列是 ;而 不是,因为这三个数字是递增的。
输入格式
第一行:一个整数
第二行: 个整数
输出格式
单个整数:表示最长的锯齿子序列长度
样例输入 #1
6
1 3 5 2 4 6
样例输出 #1
4
数据范围
对于 30% 的数据:
对于 60% 的数据:
对于 100% 的数据:,
知识点与难度
本题涉及的知识点从属于 GESP 6级,难度等级:⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 n≤10 |
| 2 | 15 | 9~11 | Hack: n=1 / 严格递增 / 严格递减 |
| 3 | 30 | 12~20 | 中大规模 n≈100~10000 |
| 4 | 25 | 21~25 | 随机回归 |