QOJ.ac

QOJ

時間限制: 5.0 s 記憶體限制: 512 MB 總分: 100

#11753. 构建最大集合

统计

考虑 $n$ 个点均匀分布在一个圆周上,构成一个正多边形。点按顺时针方向依次编号为 $1$ 到 $n$。点的总数 $n$ 为偶数。

每个点都恰好与另一个点相连,从而形成 $n/2$ 条弦。你可以将其中 $k$ 条弦替换为任意弦(即使这些弦的端点不是给定的点),然后选择一个弦集,使得该集合中任意两条弦都相交。你的目标是替换弦并选择集合,使得该集合的大小尽可能大。

输入格式

第一行包含两个整数 $n$ 和 $k$ ($2 \le n \le 8000$,$n$ 为偶数,$0 \le k \le \min(n/2, 20)$)。

第二行包含一个 $1$ 到 $n$ 的排列 $P$,表示连接关系。如果 $P_i = j$,则表示点 $i$ 和点 $j$ 之间有一条弦。保证若 $P_i = j$ 则 $P_j = i$,且 $P_i \neq i$。

输出格式

输出一个整数:在修改 $k$ 条给定弦后,所能选出的两两相交的弦集的最大大小。

样例

样例输入 1

8 0
6 8 5 7 3 1 4 2

样例输出 1

2

样例输入 2

8 1
7 4 6 2 8 3 1 5

样例输出 2

3

说明

在第二个样例中,你可以替换弦 $(1, 7)$ 以获得一个包含三条相交弦的集合:例如,除了 $(2, 4)$ 之外的所有弦构成了一个两两相交的集合。

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.