题目大意
先给一个字符串,只含小写字母,然后定义了字母的好坏,求包含坏字母数量不超过k的连续字串的数量(相同字串不重复算)。
分析
这题字符串的最大长度是1500,不搞一个n^2的算法简直对不起出题人的好意 (小菜鸡暂时也搞不了复杂度更低的了) ,哦,貌似set还要logn。。先前缀和预处理坏字符的数量,然后枚举每个区间,哈希后存于set中去重,输出set的长度即可。
sb的一批的我生生把set搞了个int型疯狂WA还疯狂怀疑hash写的有问题,也是没谁了。
代码
#include <iostream>
#include <string>
#include<set>
#include<map>
using namespace std;
const int MOD = 100001651;
int main ()
{
ios::sync_with_stdio(false);
cin