#5155. Avoid K Palindrome 2

0

Avoid K Palindrome 2

Avoid K Palindrome 2

题目描述

给定一个长度为 NN 的字符串 SS,它仅由小写英文字母组成。 求通过对 SS 的字符进行排列(包括原字符串 SS 本身)所得到的字符串中,不包含长度为 KK 的回文串作为子串的字符串的数量。 这里,长度为 NN 的字符串 TT 被称为“包含长度为 KK 的回文串作为子串”,当且仅当存在一个不大于 (N−K)(N-K) 的非负整数 ii,使得对于所有满足 1≤j≤K1 \leq j \leq K 的整数 jj 都有 Ti+j=Ti+K+1−jT_{i+j} = T_{i+K+1-j}。
这里,TkT_k 表示字符串 TT 的第 kk 个字符。

输入格式

输入从标准输入按以下格式给出: NN KK SS

输出格式

输出通过对 SS 的字符排列得到的、不包含长度为 KK 的回文串作为子串的字符串的数量。

3 2
aab
1
5 3
zzyyx
16
10 5
abcwxyzyxw
440640

提示

2≤K≤N≤102 \leq K \leq N \leq 10 NN 和 KK 为整数。 SS 是长度为 NN 的仅由小写英文字母组成的字符串。通过排列得到的字符串 aab 为 aabaab、abaaba 和 baabaa。在这些字符串中,aabaab 和 baabaa 包含长度为 22 的回文串 aaaa 作为子串。
因此,唯一满足条件的字符串是 abaaba,所以输出 11。
通过排列得到的字符串 zzyyx 有 3030 个,其中 1616 个不包含长度为 33 的回文串。因此,输出 1616。

标签: AtCoder|abc363C

来源

AtCoder|abc363C