QOJ.ac

QOJ

Limite de temps : 4 s Limite de mémoire : 256 MB Points totaux : 100

#1210. AAQQZ

Statistiques

2015 年的国际信息学奥林匹克竞赛将在哈萨克斯坦举行。哈萨克斯坦的“哈萨克”在英文中拼写为 “QAZAQ”。这个 QAZAQ 是一个回文。得知这一点后,JOI 君喜欢上了回文,并决定从他看到的字符串中制作回文。

JOI 君发现了一个长度为 $N$ 的字符串。每个字符都对应一个 1 到 $C$ 之间的整数,将字符串中的字符替换为整数后,得到数列 $S = (S_1, S_2, \dots, S_N)$。我们将该数列中从第 $i$ 个到第 $j$ 个 ($1 \le i \le j \le N$) 取出的数列 $(S_i, S_{i+1}, \dots, S_j)$ 称为片段 $(i, j)$。当片段 $(i, j)$ 与其反转后的数列相等,即 $(S_i, S_{i+1}, \dots, S_j) = (S_j, S_{j-1}, \dots, S_i)$ 成立时,称片段 $(i, j)$ 为回文。

JOI 君通过以下操作制作回文:

  1. 首先,选择 $S$ 的一个片段。将选定的片段记为 $T$。
  2. 将片段 $T$ 按升序排序,记为 $T'$。
  3. 对于数列 $S$,将片段 $T$ 替换为 $T'$。将替换后的数列记为 $S'$。也就是说,当 JOI 君选择了片段 $(i, j)$ 时,将 $S_i, S_{i+1}, \dots, S_j$ 按升序排序得到 $T'_i \le T'_{i+1} \le \dots \le T'_j$,则 $S' = (S_1, S_2, \dots, S_{i-1}, T'_i, T'_{i+1}, \dots, T'_j, S_{j+1}, \dots, S_N)$。
  4. 之后,寻找 $S'$ 中作为回文的片段。

JOI 君希望通过此操作,制作出尽可能长的回文。

题目描述

给定 JOI 君发现的字符串所对应的数列 $S$。求 JOI 君能够制作出的回文的最大长度。

输入格式

从标准输入读取以下内容:

  • 第 1 行包含两个整数 $N, C$,以空格分隔。$N$ 表示 JOI 君发现的字符串的长度,$C$ 表示字符所对应的整数上限。
  • 接下来的 $N$ 行包含数列 $S$ 的信息。其中第 $i$ 行 ($1 \le i \le N$) 包含整数 $S_i$。$S_i$ 表示数列 $S$ 的第 $i$ 个整数。

输出格式

将 JOI 君能够制作出的回文的最大长度作为一个整数输出到标准输出。

数据范围

所有输入数据满足以下条件:

  • $1 \le N \le 3\,000$
  • $1 \le C \le 3\,000$
  • $1 \le S_i \le C$ ($1 \le i \le N$)

子任务

子任务 1 [10 点]

满足以下条件:

  • $N \le 50$
  • $C \le 50$

子任务 2 [90 点]

没有额外限制。

样例

样例输入 1

12 26
26
17
17
17
1
26
1
17
19
20
1
14

样例输出 1

8

说明 1

在该输入样例中,$N = 12, C = 26$,且 $S = (26, 17, 17, 17, 1, 26, 1, 17, 19, 20, 1, 14)$。在此处,通过将片段 $(4, 8)$ 按升序排序,得到 $S' = (26, 17, 17, 1, 1, 17, 17, 26, 19, 20, 1, 14)$,此时片段 $(1, 8)$ 成为回文。该回文的长度为 8,这是最长的。

样例输入 2

4 3
1
2
3
2

样例输出 2

3

说明 2

在该输入样例中,$S = (1, 2, 3, 2)$。在此处,通过将片段 $(1, 1)$ 按升序排序,得到 $S' = (1, 2, 3, 2)$。$S$ 和 $S'$ 是相同的数列。$S'$ 的片段 $(2, 4)$ 成为回文。该回文的长度为 3,这是最长的。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.