题目链接:BestCoder Round #81 (div.2) 1003 String
题意
中文题,上有链接,就不贴了。
思路
枚举起点i,计算可以达到k个不同字母的最小下标j,则此时有子串len-j个。
将所有起点的值加起来即是结果。
代码
#include
#include
#include
using namespace std; #define LL long long const int MOD = 1000000007; char str[1000009]; int num[27]; int get_cnt() { int cnt = 0; for(int i=0; i<26; i++) cnt += num[i]==00:1; return cnt; } int main() { int T; cin>>T; while(T--) { int k; memset(num, 0, sizeof(num)); scanf("%s%d", str, &k); int len = strlen(str); LL ans = 0; int j = -1; bool flag = false; for(int i=0; i