Description

某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。

Input

第一个一个整数N,表示有多少个单词,接下来N行每行一个单词。每个单词由小写字母组成,N<=200,单词长度不超过10^6

Output

输出N个整数,第i行的数字表示第i个单词在文章中出现了多少次。

Sample Input

3
a
aa
aaa

Sample Output

6
3
1

HINT

Source

这题主要还是利用了AC自动机fail树的一种性质  什么性质呢 就是我这个节点如果出现了 那么就会在我fail树上所有到根的路径上出现 那么不妨在构造AC自动机的时候 就给节点++ 然后反向建出fail树 然后dfs一下 即可得到答案  这次文章的意思是把给定的所有单词中间用特殊字符连接起来就是文章了..

 


elijahqi

退役了 现在在商院 偶尔打CF,有时有ACM regional也去玩一下

发表评论