1&lt; n <= 4×10 ^ 5
每根弦的长度可达11
每个字符串只包含大写字母
示例 - 如果有3个字符串,A,B和AE,则输出为200 说明 - S = {“A”,“B”,“AE”}
字符串A和AE是前缀邻居,因此它们不能都是Mark的S子集。字符串B没有前缀邻居,因此我们将其包含在Mark的子集中。
为了最大化效益值,我们为子集选择AE和B.然后,我们计算所选子集的以下收益值:
Benefit value of AE = 65+69 = 134
Benefit value of B = 66
总收益值= 134 + 66 = 200。
答案 0 :(得分:1)
将输入字插入radix tree并拼接出非关键字。计算树的maximum-weight independent set;链接转到未加权算法,因此您需要将1
替换为此问题定义的节点权重。所有这些都是线性时间。