CSP-J第二轮模拟题4

配对序列

题目描述

一个序列 s 1 , … s 2 k s_1,\ldots s_{2k} s1,s2k配对的,当且仅当:

  • 对于任意 1 ≤ i ≤ k 1\le i \le k 1ik s 2 i = s 2 i − 1 s_{2i}=s_{2i-1} s2i=s2i1
  • 对于任意 1 ≤ i < k 1\le i<k 1i<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 2n5×105 1 ≤ a i ≤ 5 × 1 0 5 1\le a_i\le 5\times 10^5 1ai5×105

测试点编号 n ≤ n\le n a i ≤ a_i\le ai特殊性质
1 ∼ 2 1\sim 2 12 18 18 18 5 × 1 0 5 5\times 10^5 5×105
3 ∼ 5 3\sim 5 35 500 500 500 500 500 500
6 ∼ 7 6\sim 7 67 5000 5000 5000 5000 5000 5000
8 ∼ 9 8\sim 9 89 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} aiai+1 恒成立
12 ∼ 14 12\sim 14 1214 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 1520 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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值