Caliwa's blog

Blogs

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)

Comments

No comments yet.

Post a comment

You can refer to mike by using "@mike", and "mike" will be highlighted. If you want to type the character "@", please use "@@" instead.

You can enter "/kel" to use the emoticon "kel".