#4642. Best Concatenation

0

Best Concatenation

Best Concatenation

题目描述

给定 NN 个由数字 11 到 99 以及字符 XX 组成的字符串 S1,S2,…,SNS_1, S_2, \ldots, S_N。 我们将选择一个排列 P=(P1,P2,…,PN)P = (P_1, P_2, \ldots, P_N),它是 (1,2,…,N)(1, 2, \ldots, N) 的一个置换, 用来构造字符串 T=SP1+SP2+⋯+SPNT = S_{P_1} + S_{P_2} + \cdots + S_{P_N},其中 ++ 表示字符串的连接。 然后,我们将计算字符串 T=T1T2…T∣T∣T = T_1T_2\ldots T_{|T|}(这里 ∣T∣|T| 表示 TT 的长度)的“得分”。
得分按下面的 9 步计算,初始得分为 00:

对每个满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=1T_j = 1 的整数对 (i,j)(i, j),向得分加 11 点。 对每个满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=2T_j = 2 的整数对 (i,j)(i, j),向得分加 22 点。 对每个满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=3T_j = 3 的整数对 (i,j)(i, j),向得分加 33 点。 ⋯\cdots 对每个满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=9T_j = 9 的整数对 (i,j)(i, j),向得分加 99 点。

当 PP 可任意选择时,求 TT 的最大可能得分。

输入格式

输入按下述格式由标准输入提供: NN S1S_1 S2S_2 ⋮\vdots SNS_N

输出格式

输出答案。

3
1X3
59
XXX
71
10
X63X395XX
X2XX3X22X
13
3716XXX6
45X
X6XX
9238
281X92
1XX4X4XX6
54X9X711X1
3010

提示

2≤N≤2×1052 \leq N \leq 2 \times 10^5 NN 是整数。 SiS_i 是长度至少为 11 的字符串,由数字 11 到 99 和字符 XX 组成。 S1,S2,…,SNS_1, S_2, \ldots, S_N 的长度总和至多为 2×1052 \times 10^5。当 P=(3,1,2)P = (3, 1, 2) 时,T=S3+S1+S2=T = S_3 + S_1 + S_2 = XXX1X359XXX1X359。 然后,TT 的得分按如下计算:

有 33 个整数对 (i,j)(i, j) 满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=1T_j = 1; 有 44 个整数对 (i,j)(i, j) 满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=3T_j = 3; 有 44 个整数对 (i,j)(i, j) 满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=5T_j = 5; 有 44 个整数对 (i,j)(i, j) 满足 1≤i<j≤∣T∣1 \leq i \lt j \leq |T|、Ti=XT_i = X 且 Tj=9T_j = 9。

因此,TT 的得分为 $1 \times 3 + 3 \times 4 + 5 \times 4 + 9 \times 4 = 71$,这是可能的最大值。

标签: AtCoder|abc268F

来源

AtCoder|abc268F