Cases

看到\(c\)这么小肯定往集合方面去想,但是状压没想出来,此时一定不要忘了SOS DP

于是看这篇题解

\(S\)肯定是字符种类的集合,考虑枚举超集,当\(S\)的某一个超集以某种方式可以通过给定字符串导出,那么\(S\)就不行。考虑\(S\)不行的话会怎么样,将\(S\)的字符在给定字符串中全部标记,那么就是存在两个字符之间的距离大于\(k\),也就是说有一个长度为\(k\)的区间,其字符集与\(S\)不相交,即其补集是\(S\)的超集,于是可以想到答案的做法

update 2024.9.22

重新做一遍,做出来了

其实应该这么想:看到\(c\)很小,所以考虑枚举每一段的末尾字符集合,设为\(S\),一个显然的贪心就是将原串中所有在\(S\)中的字符全部标记,如果任意相邻两个被标记的字符的长度不超过\(k\)那么就行。考虑反面,就是存在一个长度为\(k\)的子串,这个子串的每一个字符都没有被标记。于是可以想到题解的做法

posted @ 2024-08-15 15:14  最爱丁珰  阅读(78)  评论(0)    收藏  举报