#ABC354G. 选择字符串

选择字符串

选择字符串

题目描述

给你 NN 个由小写英文字母组成的字符串 S1,S2,,SNS_1, S_2, \ldots, S_NNN 个正整数 A1,A2,,ANA_1, A_2, \ldots, A_N

若集合 T{1,2,,N}T \subseteq \lbrace 1, 2, \ldots, N \rbrace 中不存在 i,jTi, j \in T(iji \neq j)使得 SiS_iSjS_j 的子串,则称 TT 是好的集合。

求好的集合 TT 所对应的 iTAi\displaystyle \sum_{i \in T} A_i 的最大可能值。

什么是子串?

字符串 SS 的子串,是指从 SS 的开头删除任意(可为 0 个)字符、并从结尾删除任意(可为 0 个)字符后得到的字符串。 例如,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

可能的好的集合 TT 及其对应的 iTAi\displaystyle \sum_{i \in T} A_i 如下:

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

其中最大的是 66,因此输出 66

10
abcd
abc
ab
a
b
c
d
ab
bc
cd
100 10 50 30 60 90 80 70 40 20
260

数据范围

  • 1N1001 \le N \le 100
  • SiS_i 是由小写英文字母组成的字符串
  • 1Si1 \le |S_i|
  • S1+S2++SN5000|S_1| + |S_2| + \ldots + |S_N| \le 5000
  • 1Ai1091 \le A_i \le 10^9
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
3304
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签