AT_abc354_g [ABC354G] Select Strings
题目描述
有 $N$ 个仅由小写英文字母组成的字符串 $S_1,S_2,\ldots,S_N$,以及 $N$ 个正整数 $A_1,A_2,\ldots,A_N$。
对于集合 $\lbrace 1,2,\ldots,N \rbrace$ 的某个子集 $T$,如果对于任意 $i,j \in T$ 且 $i \neq j$,都不存在 $S_i$ 是 $S_j$ 的子串的情况,则称 $T$ 为**好集合**。
请你选择一个好集合 $T$,使得 $\displaystyle\sum_{i\in T}A_i$ 的值最大,并输出这个最大值。
子串的定义:字符串 $S$ 的**子串**是指通过从 $S$ 的开头删除 $0$ 个或多个字符、从结尾删除 $0$ 个或多个字符后得到的字符串。例如,`ab` 是 `abc` 的子串,但 `ac` 不是 `abc` 的子串。
输入格式
输入按以下格式从标准输入读入。
> $N$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
> $A_1\ A_2\ \ldots\ A_N$
输出格式
请输出答案。
说明/提示
## 限制条件
- $1 \leq N \leq 100$
- $S_i$ 由小写英文字母组成
- $1 \leq |S_i|$
- $|S_1|+|S_2|+\ldots+|S_N| \leq 5000$
- $1 \leq A_i \leq 10^9$
## 样例解释 1
作为好集合的 $T$ 及其对应的 $\displaystyle\sum_{i\in T}A_i$ 如下:
- 当 $T = \lbrace 1 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 5$
- 当 $T = \lbrace 2 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 2$
- 当 $T = \lbrace 3 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 3$
- 当 $T = \lbrace 4 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 4$
- 当 $T = \lbrace 2,3 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 5$
- 当 $T = \lbrace 2,4 \rbrace$ 时,$\displaystyle\sum_{i\in T}A_i = 6$
其中最大值为 $6$,因此输出 $6$。
由 ChatGPT 4.1 翻译