配对序列
题目描述
一个序列 s 1 , … s 2 k s_1,\ldots s_{2k} s1,…s2k 是配对的,当且仅当:
- 对于任意 1 ≤ i ≤ k 1\le i \le k 1≤i≤k, s 2 i = s 2 i − 1 s_{2i}=s_{2i-1} s2i=s2i−1。
- 对于任意 1 ≤ i < k 1\le i<k 1≤i<k, s 2 i ≠ s 2 i + 1 s_{2i}\ne s_{2i+1} s2i=s2i+1。
注意,配对的序列长度必然为偶数。
例如, 3 , 3 , 5 , 5 , 2 , 2 3,3,5,5,2,2 3,3,5,5,2,2 是配对的,而 2 , 2 , 2 , 2 , 5 , 5 2,2,2,2,5,5 2,2,2,2,5,5( s 2 = s 3 s_2=s_3 s2=s3 不满足第二条要求)或者 1 , 2 , 3 , 3 , 1 , 1 1,2,3,3,1,1 1,2,3,3,1,1( s 1 ≠ s 2 s_1\ne s_2 s1=s2 不满足第一条要求)都不是配对的。
给出一个数列 a 1 , … , a n a_1,\ldots, a_n a1,…,an,求所有配对的子序列长度的最大值。
输入格式
输入的第一行有一个正整数 n n n,表示序列的长度。
第二行有 n n n 个正整数 a 1 , … , a n a_1,\ldots,a_n a1,…,an,表示这个序列。
输出格式
输出一行一个自然数,表示最长的配对子序列长度。特别地,如果不存在非空的配对子序列,那么输出 0 0 0。
样例 #1
样例输入 #1
8
1 2 2 2 2 1 2 2
样例输出 #1
4
样例 #2
样例输入 #2
11
1 1 4 1 1 2 1000 2 5 5 4
样例输出 #2
6
样例 #3
样例输入 #3
参见 pairing3.in
样例输出 #3
参见 pairing3.out
样例 #4
样例输入 #4
参见 pairing4.in
样例输出 #4
参见 pairing4.out
提示
【样例 1 解释】
取 1 , 1 , 2 , 2 1,1,2,2 1,1,2,2 这个子序列即可。
【样例 2 解释】
取 1 , 1 , 2 , 2 , 5 , 5 1,1,2,2,5,5 1,1,2,2,5,5 这个配对子序列即可。
【样例 3 解释】
该样例符合测试点 3 3 3 的限制。
【样例 4 解释】
该样例符合测试点 12 12 12 的限制。
【数据范围】
对于全体数据,保证 2 ≤ n ≤ 5 × 1 0 5 2\le n\le 5\times 10^5 2≤n≤5×105, 1 ≤ a i ≤ 5 × 1 0 5 1\le a_i\le 5\times 10^5 1≤ai≤5×105。
测试点编号 | n ≤ n\le n≤ | a i ≤ a_i\le ai≤ | 特殊性质 |
---|---|---|---|
1 ∼ 2 1\sim 2 1∼2 | 18 18 18 | 5 × 1 0 5 5\times 10^5 5×105 | |
3 ∼ 5 3\sim 5 3∼5 | 500 500 500 | 500 500 500 | |
6 ∼ 7 6\sim 7 6∼7 | 5000 5000 5000 | 5000 5000 5000 | |
8 ∼ 9 8\sim 9 8∼9 | 5000 5000 5000 | 5 × 1 0 5 5\times 10^5 5×105 | |
10 10 10 | 5 × 1 0 5 5\times 10^5 5×105 | 5 × 1 0 5 5\times 10^5 5×105 | 每个数最多出现 1 1 1 次 |
11 11 11 | 5 × 1 0 5 5\times 10^5 5×105 | 5 × 1 0 5 5\times 10^5 5×105 | a i ≤ a i + 1 a_i\le a_{i+1} ai≤ai+1 恒成立 |
12 ∼ 14 12\sim 14 12∼14 | 5 × 1 0 5 5\times 10^5 5×105 | 5 × 1 0 5 5\times 10^5 5×105 | 每个数最多出现 2 2 2 次 |
15 ∼ 20 15\sim 20 15∼20 | 5 × 1 0 5 5\times 10^5 5×105 | 5 × 1 0 5 5\times 10^5 5×105 |
附件下载
https://www.luogu.com.cn/fe/api/problem/downloadAttachment/heo38ygq?contestId=200686