P12661 [KOI 2023 Round 2] 不稳定数列
题目背景
试题来源:。中文翻译做了少量本土化修改。
按照[署名—非商业性使用—相同方式共享 4.0 协议国际版](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)进行授权。
题目描述
有 $N$ 个自然数从左到右依次排列。第 $i$($1 \leq i \leq N$)个位置上的自然数为 $A_i$。
你可以从中任选若干个自然数。注意,不能一个自然数也不选,必须至少选择 1 个自然数。
设你选择的自然数个数为 $k$,选择的自然数为 $B_1, B_2, \cdots, B_k$。所选自然数的顺序应保持其在原序列中的相对顺序。
例如,若 $N = 5$,且 $A = [3, 1, 4, 1, 5]$,你选择了第 2、4、5 个位置上的自然数,则 $k = 3$,$B = [1, 1, 5]$。
将 $B$ 中相邻两个自然数的和计算出来:第一个和第二个,第二个和第三个,第三个和第四个,……,如果所有的和都是奇数,那么称 $B$ 是一个**不稳定数列**。当 $k = 1$ 时,特殊地,$B$ 被认为是不稳定数列。
例如,若 $k = 6$,$B = [1, 4, 3, 2, 5, 4]$,那么:
- 第一个自然数(1)与第二个自然数(4)的和为 5,为奇数;
- 第二个自然数(4)与第三个自然数(3)的和为 7,为奇数;
- 第三个自然数(3)与第四个自然数(2)的和为 5,为奇数;
- 第四个自然数(2)与第五个自然数(5)的和为 7,为奇数;
- 第五个自然数(5)与第六个自然数(4)的和为 9,为奇数。
因此,相邻两个自然数的和始终为奇数,$B$ 是不稳定数列。
又如,$k = 1$,$B = [2]$,由于 $k = 1$,故 $B$ 是不稳定数列。
但是,若 $k = 4$,$B = [4, 5, 1, 2]$,那么:
- 第一个自然数(4)与第二个自然数(5)的和为 9,为奇数;
- 第二个自然数(5)与第三个自然数(1)的和为 6,为偶数。
因为存在相邻两个自然数的和不是奇数的情况,所以 $B$ 不是不稳定数列。
你的任务是:选择若干个自然数,使得所构成的 $B$ 是不稳定数列,并且所选自然数的个数 $k$ 最大。请编写一个程序,求出这个最大的 $k$。
例如,当 $A = [4, 5, 1, 2]$ 时:
- 如果选取全部的自然数,得到 $B = [4, 5, 1, 2]$,这不是不稳定数列,不能用全部 4 个数;
- 但若选取第 1、3、4 个自然数,得到 $B = [4, 1, 2]$:
- 第一个自然数(4)与第二个自然数(1)的和为 5,为奇数;
- 第二个自然数(1)与第三个自然数(2)的和为 3,为奇数。
因此,所选 $B$ 是不稳定数列,且长度为 3,是可能的最大值。
输入格式
第一行输入一个整数 $N$。
第二行输入 $A_1, A_2, \cdots, A_N$,各数之间用空格分隔。
输出格式
输出一个整数,表示可以选择的最大自然数个数 $k$。
说明/提示
**限制条件**
- 所有给定数均为自然数。
- $1 \leq N \leq 300\,000$
- $1 \leq A_i \leq 100\,000 \quad (1 \leq i \leq N)$
**子任务**
1. (5 分)答案为 $N - 1$ 或 $N$。
2. (8 分)$N \leq 15$
3. (12 分)$N \leq 5\,000$
4. (15 分)$A_i \leq 50 \quad (1 \leq i \leq N)$
5. (60 分)无附加限制。
翻译由 ChatGPT-4o 完成