AT_abc268_f [ABC268F] Best Concatenation
题目描述
给定 $N$ 个仅由数字 $1$ 到 $9$ 以及 `X` 组成的字符串 $S_1, S_2, \ldots, S_N$。
你可以任选一个 $1$ 到 $N$ 的排列 $P = (P_1, P_2, \ldots, P_N)$,并将字符串 $S_{P_1}, S_{P_2}, \ldots, S_{P_N}$ 按顺序连接,得到字符串 $T = S_{P_1} + S_{P_2} + \cdots + S_{P_N}$。这里的 $+$ 表示字符串的连接操作。
然后,对字符串 $T = T_1T_2\ldots T_{|T|}$ 计算其“得分”($|T|$ 表示 $T$ 的长度)。
$T$ 的得分从 $0$ 开始,按照以下 $9$ 个步骤计算:
- 对于所有满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `1` 的整数对 $(i, j)$,每对使得得分加 $1$。
- 对于所有满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `2` 的整数对 $(i, j)$,每对使得得分加 $2$。
- 对于所有满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `3` 的整数对 $(i, j)$,每对使得得分加 $3$。
- $\cdots$
- 对于所有满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `9` 的整数对 $(i, j)$,每对使得得分加 $9$。
请输出在任意选择排列 $P$ 时,$T$ 的得分可能取得的最大值。
输入格式
输入按以下格式从标准输入读入。
> $N$
> $S_1$
> $S_2$
> $\vdots$
> $S_N$
输出格式
输出答案。
说明/提示
### 数据范围
- $2 \leq N \leq 2 \times 10^5$
- $N$ 为整数
- $S_i$ 是仅由数字 $1$ 到 $9$ 以及 `X` 组成的字符串,长度至少为 $1$
- $S_1, S_2, \ldots, S_N$ 的总长度不超过 $2 \times 10^5$
### 样例解释 1
当 $P = (3, 1, 2)$ 时,$T = S_3 + S_1 + S_2 = $ `XXX1X359`。此时,$T$ 的得分如下计算:
- 满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `1` 的整数对 $(i, j)$ 有 $3$ 个;
- 满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `3` 的整数对 $(i, j)$ 有 $4$ 个;
- 满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `5` 的整数对 $(i, j)$ 有 $4$ 个;
- 满足 $1 \leq i < j \leq |T|$ 且 $T_i = $ `X` 且 $T_j = $ `9` 的整数对 $(i, j)$ 有 $4$ 个。
因此,$T$ 的得分为 $1 \times 3 + 3 \times 4 + 5 \times 4 + 9 \times 4 = 71$,这也是可能取得的最大值。
由 ChatGPT 4.1 翻译