摘要:
对S建SAM,拿着T在上面跑 跑的时候不仅无法转移要跳parent,转移过去不在范围内也要跳parent(注意因为范围和长度有关,跳的时候应该把长度一点一点地缩) 这样就能得到对于T的每个前缀,它最长的不合法的后缀的长度ill[i] 得到他要去重,以后可以再对T建SAM,然后对于每个节点,$ans+ 阅读全文
摘要:
首先,让每一个叶节点做一次树根的话,每个路径一定至少有一次会变成直上直下的 于是对于每个叶节点作为根产生的20个trie树,把它们建到同一个广义SAM里 建法是对每个trie dfs去建,last就是父亲的那个节点;每次做一个新trie时,last给成root 然后答案就是每个节点表示的长度和 阅读全文