我的SAM第一题。按照惯例几乎是照着std抄的OVO。本来以为是要在SAM上DP,后来发现好像是并列的,于是比较开心。

SAM这个东西主要就是用来匹配子串用的。建法详见clj的课件,然后现在我还处于消化状态中。

SAM匹配多个串的话也比较好弄,直接在串末再加一个字符集里没有的元素就好了。

现在假设已经用SAM匹配出了第i个位置往左ml[i]个位置都是可以匹配的,那么可以二分一个答案,然后用单调队列来DP判断。写法比较简单,虽然我急着去写SAM所以这部分也是蒙过去的。

然后网上的2个std就有2种不同的答案还和我不一样。最后还是wd学长的代码靠谱orz。

现在我可以说我是写过SAM的人了哈哈。