zoukankan      html  css  js  c++  java
  • HDU 5056 Boring count(数学)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5056


    Problem Description
    You are given a string S consisting of lowercase letters, and your task is counting the number of substring that the number of each lowercase letter in the substring is no more than K.
     
    Input
    In the first line there is an integer T , indicates the number of test cases.
    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
     
    Sample Output
    6 15 21
     
    Source


    官方题解:


    代码例如以下:
    #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
    ",ans);
        }
        return 0;
    }
    



  • 相关阅读:
    关于按钮背景透明 + div拖拽
    asp.net 自带ajax 控件的小实例
    何去何从
    字符串的常用操作
    第一章
    C语言的基础知识2
    C语言的基础知识1
    socket
    缓冲区溢出学习
    OD调试
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6830337.html
Copyright © 2011-2022 走看看