Did We Get Everything Covered?

小清新贪心题

我们直接考虑如何找出反例,假设我们已经知道了这个反例,那么为什么找不到呢?我们在尝试找的时候,肯定是依次找反例的每个字母,根据贪心,肯定是越往前找越好,而即使这个样子我们最后都无法匹配完这个反例

所以我们可以想出一个贪心算法:依次遍历每个字母,并用一个数组\(mark\)记录某个小写字母是否被记录,如果当前字母没被记录(\(mark[i]\)\(0\)),那么就让\(cnt++\)并且让\(mark[i]=1\);某个时刻当\(cnt=k\)时,我们就将\(cnt\)变成\(0\)并且让\(mark\)数组清零,然后将刚才遍历过的下标划分成一个段;我们重复上述过程,直到\(n\)遍历完了,划分出来若干个段

我们现在就可以知道到,对每个段,找出每个段的最后一个字母,依次拼接起来,再添加几个字母就是反例

posted @ 2024-02-21 17:57  最爱丁珰  阅读(5)  评论(0编辑  收藏  举报