摘要:
题目:给出n个串,问最多能够选出多少个串,使得前面串是后面串的子串(按照输入顺序)分析: 其实这题是这题SPOJ 7758. Growing Strings AC自动机DP的进阶版本,主题思想差不多。 对于这题来说,需要离线操作。dp转移也是很显然。 但是由于数据比较大,所以普通的沿着fail指针往上走,逐步更新答案会TLE。 考虑把fail指针反向,由于ac自动机的每个节点均有唯一的fail指针,若是沿着fail指针往上走,显然都会走到root,所以反向之后显然是一棵树,不妨称之为fail树。fail树有什么特点呢?可以画个图试试,如果儿子节点出现过,那么他的祖先显然也会出现! 因... 阅读全文