Caliwa 的網誌

網誌

Subsequence 题解

2019-10-30 14:05:01 By Caliwa

如果最长次连续子串为[l,r],我们找到它的子序列的开头和结尾l1,r1,那么一定存在l1 < l或r1 > r。

如果 l1 < l,那么可以将r延伸至len。如果r1 > r,那么可以将l延伸至1。所以最长次连续子串一定是前缀或后缀。

最长次连续子串长度恰好为w不好求,我们改为求<=w的减去<=w-1的。

最长次连续子串长度<=w,则开头的len-w个字符互不相同且末尾的len-w个字符互不相同。

当len<=2w时,ans=P(k,len-w)^2 * k^(2w-len)。

当len>2w时,ans=P(k,len-2w) * P(k-(len-2w), w)^2。

在[w,w+k]中枚举len即可。

时间复杂度O(k)

評論

No comments yet.

發表評論

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。

可以用/kel来使用表情 kel。