小清新贪心题
我们直接考虑如何找出反例,假设我们已经知道了这个反例,那么为什么找不到呢?我们在尝试找的时候,肯定是依次找反例的每个字母,根据贪心,肯定是越往前找越好,而即使这个样子我们最后都无法匹配完这个反例
所以我们可以想出一个贪心算法:依次遍历每个字母,并用一个数组\(mark\)记录某个小写字母是否被记录,如果当前字母没被记录(\(mark[i]\)为\(0\)),那么就让\(cnt++\)并且让\(mark[i]=1;某个时刻当\)cnt=k\(时,我们就将\)cnt$变成\(0\)并且让\(mark\)数组清零,然后将刚才遍历过的下标划分成一个段;我们重复上述过程,直到\(n\)遍历完了,划分出来若干个段
我们现在就可以知道到,对每个段,找出每个段的最后一个字母,依次拼接起来,再添加几个字母就是反例
标签:cnt,遍历,Did,字母,反例,mark,Everything,Covered,贪心 From: https://www.cnblogs.com/dingxingdi/p/18025888