bzoj#P3952. 字符串集合

字符串集合

题目描述

有三个字符串集合 pre,mid,sufpre,mid,suf。我们称一个字符串的二元组 (p,q)(p,q) 合法,当且仅当:

  1. pp 属于集合 prepre
  2. qq 属于集合 sufsuf
  3. 存在 pp 的一个长度不小于 k1k_1 的子串 pp'qq 的一个长度不小于 k2k_2 的子串 qq',以及集合 midmid 中的一个字符串 ss,使得 p+qp'+q'ss 的一个子串。这里的 + 代表字符串的连接。

你可以进行任意次操作,一次操作中,你需要选择一个合法的二元组 (p,q)(p,q),并从集合 prepre 中删去字符串 pp,从集合 sufsuf 中删去字符串 qq。求最多的操作次数。

输入格式

输入的第一行包含三个正整数 s1,s2,s3s_1,s_2,s_3,分别代表集合 pre,mid,sufpre,mid,suf 中字符串的个数。

第二行包含两个正整数 k1k_1k2k_2,含义如问题描述中所述。

接下来 s1s_1 行,每行包含一个字符串,代表集合 prepre 中的一个字符串。

接下来 s2s_2 行,每行包含一个字符串,代表集合 midmid 中的一个字符串。

接下来 s3s_3 行,每行包含一个字符串,代表集合 sufsuf 中的一个字符串。

输出格式

输出一行,包含一个正整数,表示最多可以操作的次数。

2 1 4
2 3
aab
bbb
aabbcdd
cdd
bcd
zz
bcde
2

样例解释

样例中合法的二元组有 (aab, bcd) (aab, bcde)(bbb, ccd)

字符串 zz 的长度小于 k2k_2,因此不存在包含这个字符串的合法二元组。

数据规模与约定

len(S)len(S) 为集合 SS 中所有字符串的长度和,KKmax{s1,s2,s3}\max\{s_1,s_2,s_3\}

再令 L=max{len(pre),len(mid),len(suf)}L = \max\{len(pre), len(mid), len(suf)\}

对于 10%10\% 的数据,K5K\leq 5L30L \leq 30

对于 20%20\% 的数据,K30K\leq 30L300L\leq 300

对于 50%50\% 的数据,K500K\leq 500L104L\leq 10^4

对于 100%100\% 的数据,K2.5×104K\leq 2.5\times 10^4L5×104L\leq 5\times 10^40k1,k2L0 \leq k_1, k_2 \leq L。字符串只含有小写英文字母。

注意题目中的“集合”和数学中定义的集合不同,其中可以有相同的字符串。

尚无数据,请不要提交!求此题数据!