Cases
看到\(c\)这么小肯定往集合方面去想,但是状压没想出来,此时一定不要忘了SOS DP
于是看这篇题解
\(S\)肯定是字符种类的集合,考虑枚举超集,当\(S\)的某一个超集以某种方式可以通过给定字符串导出,那么\(S\)就不行。考虑\(S\)不行的话会怎么样,将\(S\)的字符在给定字符串中全部标记,那么就是存在两个字符之间的距离大于\(k\),也就是说有一个长度为\(k\)的区间,其字符集与\(S\)不相交,即其补集是\(S\)的超集,于是可以想到答案的做法
update 2024.9.22
重新做一遍,做出来了
其实应该这么想:看到\(c\)很小,所以考虑枚举每一段的末尾字符集合,设为\(S\),一个显然的贪心就是将原串中所有在\(S\)中的字符全部标记,如果任意相邻两个被标记的字符的长度不超过\(k\)那么就行。考虑反面,就是存在一个长度为\(k\)的子串,这个子串的每一个字符都没有被标记。于是可以想到题解的做法

浙公网安备 33010602011771号