• hust 1328 String


    题目描述

    Give you a string S,assume the Sub-String Stri = S[0..i] and the length of the string is N. e.g. S = "moreandmorecold", N = 15, Str0 = "m" Str1 = "mo" Str2 = "mor" and so on. And we define c[i] indicate how many Sub-String Stri in S, now please calculate the sum of c[0] to c[N-1].

    输入

    the first line include a number T, means the number of test cases. For each test case, just a line only include lowercase indicate the String S, the length of S will less than 100000.

    输出

    Fore each test case, just a number means the sum.

    样例输入

    3
    acacm
    moreandmorecold
    thisisthisththisisthisisthisththisis

    样例输出

    7
    19
    82
    
    For the first case,
    there are two "a","ac" and one "aca","acac","acacm" in the string "acacm".
    So the answer is 2 + 2 + 1 + 1 + 1 = 7

    简单的kmp算法应用
    详见 http://blog.csdn.net/hcbbt/article/details/17058857
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    using namespace std;
    char p[100001];
    int f[100002];
    void getf()
    {
        int m=strlen(p);
        f[0]=f[1]=0;
        for (int i=1;i<m;i++)
        {
            int j=f[i];
            while(j && p[i]!=p[j]) j=f[j];
            f[i+1]=(p[i]==p[j]?j+1:0);
        }
    }
    int main()
    {
        int n,len;
        long long sum[100001],ans;
        scanf("%d
    ",&n);
        while (n--)
        {
            ans=0;
            gets(p);getf();len=strlen(p);
            memset(sum,0,sizeof(sum));
            for (int i=1;i<=len;i++)
            {
                sum[i]=sum[f[i]];
                sum[i]++;
                ans+=sum[i];
            }
            printf("%lld
    ",ans);
        }
        return 0;
    }
    至少做到我努力了
  • 相关阅读:
    .net 关于路径的总结
    asp.net Base64加解密
    asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用
    asp.net Swiper 轮播动画
    ASP.NET中Literal控件的使用方法(用于向网页中动态添加内容)
    asp.net 获取表单中控件的值
    rgb值转换成16进制
    关于background全解
    移动端的性能陷阱
    原生JS实现雪花特效
  • 原文地址:https://www.cnblogs.com/chensunrise/p/3723887.html
Copyright © 2020-2023  润新知