#5097. Select Strings

0

Select Strings

Select Strings

题目描述

你有 NN 个由小写英文字母组成的字符串 S1,S2,…,SNS_1, S_2, \ldots, S_N 和 NN 个正整数 A1,A2,…,ANA_1, A_2, \ldots, A_N。 若集合 T⊆{1,2,…,N}T \subseteq \lbrace 1, 2, \ldots, N \rbrace 满足不存在一对 i,j∈T(i≠j)i, j \in T (i \neq j) 使得 SiS_i 是 SjS_j 的子串,则称 TT 为一个 良好集合。 求良好集合 TT 的 ∑i∈TAi\displaystyle \sum_{i \in T} A_i 的最大可能值。

什么是子串? 一个字符串 $S$ 的 子串 是通过从 $S$ 的开头删除零个或多个字符并从结尾删除零个或多个字符得到的字符串。 例如,$ab$ 是 $abc$ 的子串,但 $ac$ 不是 $abc$ 的子串。

输入格式

输入按下述格式由标准输入给出: NN S1S_1 S2S_2 ⋮\vdots SNS_N A1A_1 A2A_2 …\ldots ANA_N

输出格式

输出答案。

4
atcoder
at
coder
code
5 2 3 4
6
10
abcd
abc
ab
a
b
c
d
ab
bc
cd
100 10 50 30 60 90 80 70 40 20
260

提示

1≤N≤1001 \leq N \leq 100 SiS_i 是由小写英文字母组成的字符串。 1≤∣Si∣1 \leq |S_i| ∣S1∣+∣S2∣+…+∣SN∣≤5000|S_1| + |S_2| + \ldots + |S_N| \leq 5000 1≤Ai≤1091 \leq A_i \leq 10^9可能的良好集合 TT 及其对应的 ∑i∈TAi\displaystyle \sum_{i \in T} A_i 如下:

T={1}T = \lbrace 1 \rbrace: ∑i∈TAi=5\displaystyle \sum_{i \in T} A_i = 5 T={2}T = \lbrace 2 \rbrace: ∑i∈TAi=2\displaystyle \sum_{i \in T} A_i = 2 T={3}T = \lbrace 3 \rbrace: ∑i∈TAi=3\displaystyle \sum_{i \in T} A_i = 3 T={4}T = \lbrace 4 \rbrace: ∑i∈TAi=4\displaystyle \sum_{i \in T} A_i = 4 T={2,3}T = \lbrace 2, 3 \rbrace: ∑i∈TAi=5\displaystyle \sum_{i \in T} A_i = 5 T={2,4}T = \lbrace 2, 4 \rbrace: ∑i∈TAi=6\displaystyle \sum_{i \in T} A_i = 6

其中最大值为 66,因此输出 66。

标签: AtCoder|abc354G

来源

AtCoder|abc354G