此题困扰了我一天。。。今天才得以解决啊。。问了两位大神才得解。
一直没搞懂为什么要对长度进行统计然后就是dag有序了
首先sam就是一个dag的图,为什么是dag呢,由于自动机从根出来的每一路径都是一条子串,那么必定无环,则一定是个dag这个也是性质之1只是之前一直没懂为什么
然后对于len的长度排序,因为因为根据dp拓扑性,len小的在前面,那么统计每个len,然后计数排序以后就可以算是top序了,且满足top性,那么我只要从出度为0开始搜就好了(sam是一个逆序的后缀树)那么反向搜过来维护最小值,因为是多个串的的最长公共。
此题最开始说的top性优化就是指以上的。那么你可以sort排序或者dfs但是spoj卡时间,所以这种方法是最好的。这也是学习啊啊啊啊。。。。!!!!