先來看看官方解答
官解的大意就是說,如果我們列舉\(l\)和\(r\),這樣時間複雜度是會退化到\(O(n^3)\)的,而我們如果利用轉換物件法,考慮列舉\(d\),這樣就可以在\(O(1)\)的時間內進行轉移,至於如何轉移可以看官解(這個時候一定要記住只計數就好了,不用把每一個位置的匹配情況全部記下來)
然後來看看我的做法
其實本質上跟官方解答是差不多的,但是就是沾了個DP的名義
設\(f[i][j]\)表示如果以第\(i\)個字元為開頭且第\(i\)個字元匹配到第\(j\)個字元(\(j>i\)),能匹配的最大長度
比如這幅圖,\(a\)的\(f\)的值就是\(2\)
然後接下來就很easy了