题目:http://codevs.cn/problem/1306/
分析:题意一看就知道就是要求Trie有多少个节点。但是如果每次单独取原串的所有子串加入Trie会超时,为什么呢?比方说AAABBBCCC,假设这样的一些串,A,AB,ABB,ABBB,ABBBC,ABBBCC,ABBBCCC,如果单独加入,那么它们的前缀都要重新查找,很浪费时间。考虑子串[l,r]和[l,r+1],完全可以在弄完[l,r]后继续第r+1个字符,就弄完了[l,r+1]。
具体的,按一定的顺序取子串:
[1,1] [1,2] [1,3]……[1,n]
[2,2] [2,3] ……
[3,3]……
就可以了