HDU 5056 Boring count(數學)
阿新 • • 發佈:2017-05-09
log class == contain bold sea d+ const first
For each case, the first line contains a string which only consist of lowercase letters. The second line contains an integer K.
[Technical Specification]
1<=T<= 100
1 <= the length of S <= 100000
1 <= K <= 100000 Output For each case, output a line contains the answer. Sample Input
Sample Output
官方題解:
代碼例如以下:
題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=5056
For each case, the first line contains a string which only consist of lowercase letters. The second line contains an integer K.
[Technical Specification]
1<=T<= 100
1 <= the length of S <= 100000
1 <= K <= 100000 Output For each case, output a line contains the answer. Sample Input
3 abc 1 abcabc 1 abcabc 2
6 15 21Source BestCoder Round #11 (Div. 2)
官方題解:
代碼例如以下:
#include <cstdio> #include <cstring> const int maxn = 100017; int main() { int t; char str[maxn]; int st[27]; int k; scanf("%d",&t); while(t--) { memset(st,0,sizeof(st)); scanf("%s",str); scanf("%d",&k); __int64 ans = 0; int len = strlen(str); int startpos = 0; for(int i = 0; i < len; i++) { int tt = str[i] -‘a‘; st[tt]++; if(st[tt] > k) { while(str[startpos]!=str[i]) { st[str[startpos]-‘a‘]--; startpos++; } st[str[startpos]-‘a‘]--; startpos++; } ans+=i-startpos+1; } printf("%I64d\n",ans); } return 0; }
HDU 5056 Boring count(數學)