唔..过去了一个多月才敢动一下一试的题呢..毕竟好神啊好神啊
看右边→就写着Orz yu990601
那不如就从他A掉的T3开始吧...
昨天晚上看了一下SAM..大概还是比较亲切的吧
毕竟去年暑假还是听过的...虽然并没有听懂
但是很开心的是现在再看CLJ的讲稿的时候大部分都能看懂了呢
直接这道题吧...首先这棵树的叶子节点不超过20个
然后一个很神奇的性质就是所有的子串都会在以某个叶子节点为根的树上以一条直线的姿态出现...
这么说不利于解题...也就是必定会作为叶子节点到以它为根的树上的某个节点的路径上的后缀...
然后SAM就可以敲起来了...对于每一个节点建一建SAM,然而相同的子串完全不需要处理
因为SAM就是忽略相同子串的...
最后统计子串...
显然后缀自动机保存了字符串的每一条后缀,那么子串就是这些后缀的所有前缀
设fail[i]代表的字符串的前缀全部统计完毕,要继续统计i的时候
只需要统计红色部分的长度就可以了
时间: 2024-10-13 08:58:43