CF1800F Dasha and Nightmares
题目描述
达莎是一名优秀的学生,就读于全国最好的数学中学。最近,一位神秘的陌生人带来了 $n$ 个仅由小写拉丁字母组成的单词 $s_1, s_2, \ldots, s_n$。从那天起,达莎就一直被噩梦困扰。
考虑一对整数 $\langle i, j \rangle$($1 \le i \le j \le n$)。一个“噩梦”是满足以下条件的字符串:
- 它是通过连接 $s_i$ 和 $s_j$ 得到的,即 $s_is_j$;
- 它的长度是奇数;
- 其中恰好有 $25$ 个不同的字母;
- 在该字符串中,每个出现的字母出现的次数都是奇数。
例如,如果 $s_i=$ "abcdefg",$s_j=$ "ijklmnopqrstuvwxyz",那么 $\langle i, j \rangle$ 这一对就会产生一个噩梦。
达莎只有数清楚所有噩梦的数量,才能摆脱噩梦。然而,噩梦的数量太多了,所以她需要你的帮助。请你计算不同噩梦的数量。
如果对应的 $\langle i, j \rangle$ 不同,则认为噩梦是不同的。若 $\langle i_1, j_1 \rangle$ 和 $\langle i_2, j_2 \rangle$ 满足 $i_1 \neq i_2$ 或 $j_1 \neq j_2$,则认为这两对是不同的。
输入格式
第一行包含一个整数 $n$($1 \le n \le 2 \cdot 10^5$),表示单词的数量。
接下来的 $n$ 行,每行一个单词 $s_1, s_2, \ldots, s_n$,每个单词仅由小写拉丁字母组成。
保证所有单词的总长度不超过 $5 \cdot 10^6$。
输出格式
输出一个整数,表示不同噩梦的数量。
说明/提示
在第一个测试样例中,产生噩梦的对为 $\langle 1, 3 \rangle$、$\langle 2, 5 \rangle$、$\langle 3, 4 \rangle$、$\langle 6, 7 \rangle$、$\langle 9, 10 \rangle$。
由 ChatGPT 4.1 翻译