#df1933. 比赛组队(Team Selection)

比赛组队(Team Selection)

比赛组队(Team Selection)

题目描述

有一场数学团体赛,学校要从 nn 个人中选出 mm 个人组队参赛,这 mm 个人中有 kk 对人本身在校内就是一个团队的,因此在一个团队的同学要么都选,要么都不选。

请你编程选出尽可能和 mm 接近的人数。

输入格式

第一行,三个正整数 n,m,kn,m,k

22 至第 k+1k+1 行,每行 22 个数,表示在校内就在一个团队的 22 个人的编号(编号为 1,2,,n1,2,\dots,n)。

输出格式

一行,与原来的 mm 尽可能接近的选出的人数。

如果有两种方案与 mm 的差的绝对值相等,选较小的一种。

样例输入 #1

4 3 2
1 2
3 4

样例输出 #1

2

样例输入 #2

6 4 4
2 3
3 4
4 5
5 6

样例输出 #2

5

数据范围

1n,m2×1041 \le n,m \le 2 \times 10^4

知识点与难度

本题涉及的知识点从属于 并查集(连通块缩点)、背包 DP(可达性统计),难度等级:提高


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例
1 20 3~8 小规模 n≤10 / 特殊: k=0 全独立 / 特殊: 全员一队平局取小 / 特殊: 全等大团队平局
2 15 9~11 Hack: 重边+自环密集 / Hack: n=1 自环边界 / Hack: 巨大团队+散人
3 30 12~20 中规模 n≈5000~10000 / 大规模 n=20000,k=20000 压力(含长链退化)
4 25 21~25 随机 n=1~20000 回归