ZCC loves strings

Accepts: 94
Submissions: 498
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 262144/131072 K (Java/Others)
问题描述
ZCC有N个字符串,他正在和Miss G.用这N个字符串玩一个小游戏。ZCC会从这N个串中等概率随机选两个字符串(不可以是同一个)。然后,ZCC和Miss G.轮流操作。Miss G.总是先操作的。在每轮中,操作者可以选择操作A或操作B。

操作A:在两个串中选择一个当前非空的串,然后在这个串的末尾删去一个字符。

操作B: 若当前两个串完全相同且非空,则可以使用这个操作。此时两个串都被清空。

不能操作的玩家输掉了这个游戏。

ZCC想要知道他输掉游戏的概率是多少(也就是Miss G.获胜的概率)。
输入描述
第一行有一个整数$T(T\leq 5)$,代表测试数据组数。
对于每组数据,第一行有一个非负整数$N(2 \leq N\leq 20000)$。接下来的N行中,每行有一个仅由小写字母构成的字符串。保证一组数据中字符串的总长度不超过$200000$.
输出描述
对于每组数据,输出单独的一行代表答案。答案用既约分数"p/q"的形式表示。如果答案是1,输出"1/1";如果答案是0,输出"0/1".
输入样例
1
3
xllendone
xllendthree
xllendfour
输出样例
2/3