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 翻译