#B3618. 寻找团伙(Finding the Crew)

0
    ID: 8543 传统题 1000ms 128MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>B3618深度优先搜索位运算GESP 6级CSP-J

寻找团伙(Finding the Crew)

寻找团伙(Finding the Crew)

题目描述

世界局势风云变幻,你想办一件大事。办事自然要有人参与,你能从 nn 个人里面挑选一部分人共襄盛举。

要办这件事,一共涉及 kk 方面的能力,例如游说他人的能力、玩游戏的能力、睡觉的能力。每位人士都会具备某一些能力,例如机器猫就可能擅长睡觉、擅长玩游戏,而不擅长游说他人。

你的计划很宏伟,因此你希望团队拥有很全面的能力。不幸的是,如果团队中有偶数个人拥有同一类能力,那么他们就会分成两派,争执不下,导致整个团队丧失这方面的能力。相应地,如果这项能力只有奇数个人拥有,那么他们总能形成一个多数派,帮团队去做这方面的工作。

需要注意的是,团队拥有的每一项能力,对计划的成功率的贡献是不一样的。第一项能力最重要,它的权重是 2k−12^{k-1};第二项能力的权重是 2k−22^{k-2};依次类推。第 kk 项能力最不重要,权重只有 11。

计划的成功率得分,即是团队拥有的所有能力对应的权重之和。

你希望计划成功率最大。因此,你需要选出合适的人士,来参与到你的宏图伟业中。

输入格式

第一行,两个正整数 n,kn, k。分别表示供你挑选的人的数量,以及能力的种类数。
接下来 nn 行,每行表示每个人拥有的能力。这一行首先有一个整数 cc,表示该人士拥有多少种能力;接下来是 cc 个 [1,k][1, k] 之间的正整数,表示该人士拥有哪些能力。

输出格式

仅一行,一个整数,表示计划的成功率得分。

样例输入 #1

5 5
1 1
1 2
1 3
1 4
1 5

样例输出 #1

31

样例输入 #2

3 5
3 1 2 3
4 2 3 4 5
2 3 4

样例输出 #2

28

样例输入 #3

3 5
2 1 2
3 5 3 2
3 4 2 5

样例输出 #3

30

样例输入 #4

21 60
0
0
3 60 27 48
0
1 48
2 52 14
2 4 31
0
0
2 28 43
2 6 31
0
1 7
3 45 6 48
0
1 51
0
2 28 20
2 37 51
1 8
53 59 39 29 23 53 27 13 16 44 34 38 24 9 32 58 54 31 1 7 45 3 30 36 17 48 42 22 18 21 6 11 25 33 37 52 10 60 49 57 2 28 8 14 5 47 4 41 35 43 50 46 26 12

样例输出 #4

1152884121210322895

数据范围

样例解释

第一组样例,共 5 个人,每个人拥有的能力不一样。最终选择的结果是让这 5 个人都参与计划,得分 16+8+4+2+1=3116+8+4+2+1 = 31。

第二组样例,我们选择只让 11 参与。那么团队具有能力 1,2,31,2, 3,得分 16+8+4=2816+8+4=28。

第三组样例,我们让 1,2,31,2,3 参与。由于团队中有偶数个成员拥有能力 55,故团队并不拥有能力 55。奇数个成员拥有能力 22,故团队拥有能力 22。最终,团队具有能力 1,2,3,41,2,3,4。得分 16+8+4+2=3016+8+4+2=30。

数据规模与约定

对于 100%100\% 的数据,有 n≤21,k≤60n\leq 21, k\leq 60。

知识点与难度

本题涉及的知识点从属于 GESP 6级,难度(CF Rating):1200。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1~2 样例及最小边界测试
1 20 3~8 1≤n≤121 \le n \le 12,1≤k≤201 \le k \le 20
2 15 9~11 Hack 数据:k=60k = 60(需 unsigned long long 位运算)、所有人能力全空(答案 00)
3 30 12~20 1≤n≤201 \le n \le 20,1≤k≤601 \le k \le 60
4 25 21~25 n=21n = 21,k=60k = 60 随机满规模测试

出处:原题链接