Tandem Repeats?

先来看看官方解答

官解的大意就是说,如果我们枚举\(l\)\(r\),这样时间复杂度是会退化到\(O(n^3)\)的,而我们如果利用转换对象法,考虑枚举\(d\),这样就可以在\(O(1)\)的时间内进行转移,至于如何转移可以看官解(这个时候一定要记住只计数就好了,不用把每一个位置的匹配情况全部记下来)

然后来看看我的做法

其实本质上跟官方解答是差不多的,但是就是沾了个DP的名义

\(f[i][j]\)表示如果以第\(i\)个字符为开头且第\(i\)个字符匹配到第\(j\)个字符(\(j>i\)),能匹配的最大长度

比如这幅图,\(a\)\(f\)的值就是\(2\)

然后接下来就很easy了

posted @ 2024-03-17 12:56  最爱丁珰  阅读(4)  评论(0编辑  收藏  举报