CF1902E Collapsing Strings
题目描述
给定 $n$ 个字符串 $s_1, s_2, \dots, s_n$,每个字符串均由小写拉丁字母组成。记 $|x|$ 为字符串 $x$ 的长度。
定义两个字符串 $a$ 和 $b$ 的“折叠”操作 $C(a, b)$ 如下:
- 如果 $a$ 为空串,则 $C(a, b) = b$;
- 如果 $b$ 为空串,则 $C(a, b) = a$;
- 如果 $a$ 的最后一个字母等于 $b$ 的第一个字母,则 $C(a, b) = C(a_{1,|a|-1}, b_{2,|b|})$,其中 $s_{l,r}$ 表示字符串 $s$ 的第 $l$ 个字母到第 $r$ 个字母组成的子串;
- 否则,$C(a, b) = a + b$,即将两个字符串直接拼接。
请计算 $\sum\limits_{i=1}^n \sum\limits_{j=1}^n |C(s_i, s_j)|$。
输入格式
第一行包含一个整数 $n$($1 \le n \le 10^6$)。
接下来的 $n$ 行,每行包含一个字符串 $s_i$($1 \le |s_i| \le 10^6$),均由小写拉丁字母组成。
所有字符串的总长度不超过 $10^6$。
输出格式
输出一个整数,表示 $\sum\limits_{i=1}^n \sum\limits_{j=1}^n |C(s_i, s_j)|$。
说明/提示
由 ChatGPT 4.1 翻译