蛋白质集合大代表性子集选择算法.pdfVIP

  • 0
  • 0
  • 约1.25千字
  • 约 2页
  • 2026-01-31 发布于北京
  • 举报

算法训练RepresentativeSampling(30_points)

时间限制:2.0s内存限制:256.0MB

【题目描述】

来自ABBYY的小明有一个与“细胞与遗传学”的合作。,

用一个新的题目考验小明。题目如下。

有由n个细胞组成的一个集合(不一定不同)每个细胞是一个由小写拉丁字

母组成的字符串。科学家给小明问题是从给定集合中选出一个大小为k

的子集,使得所选子集的代表值最大。

小明做了些研究并得出了一个结论,即一个蛋白质集合的代表制可以用一个

方便计算的整数来表示。我们假设当前的集合为{a,...,a},包含了k个用以

1k

表示蛋白质的字符串。那么蛋白质集合的代表值可以用如下的式子来表示:

其中f(x,y)表示字符串x和y的最长公共前缀的长度,例如:

f(abc,abd)=2,f(ab,bcd)=0.

因此,蛋白质集合{abc,abd,abe}的代表值等于6,集合{aaa,ba,

ba}的代表值等于2。

在发现了这个,小明要求赛事参与者写一个程序选出,给定蛋白质的集

合中的大小为k的子集中,能获得最大可能代表性值得一个子集。帮助他解决这

个问题吧!

【输入格式】

输入数据第一行包含2个正整数n和k(1≤k≤n),由一个空格隔开。接

下来的n行每一行都包含对蛋白质的描述。每个蛋白质都是一个仅有不超过500个

小写拉丁字母组成的非空字符串。有些字符串可能是相等的。

输出格式

输出一个整数,表示给定蛋白质集合的大小为k的子集的代表值最大可能是

多少。

【数据规模】

20%的数据保证:1≤n≤20

50%的数据保证:1≤n≤100

100%的数据保证:1≤n≤2000

【样例输入1】

32

aba

bzd

abq

【样例输出1】

2

【样例输入2】

43

eee

rrr

ttt

qqq

【样例输出2】

0

【样例输入3】

43

aaa

abba

abbc

abbd

【样例输出3】

9

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档