zoukankan      html  css  js  c++  java
  • 字符串算法汇总

    字符串算法都好难啊……

    1. 字符串哈希

    #define int long long
    int n,cnt,finalans;
    int mod1=1e9+7,base=107,mod2=1e9+9;
    struct node{int x,y;}a[10010];
    bool cmp(node a,node b)
    {
        if(a.x!=b.x)return a.x<b.x;
        return a.y<b.y;
    }
    int hash1(string s)
    {
        int ans=0,l=s.length();
        for(int i=0;i<l;i++)ans=(ans*base%mod1+(s[i]-'0'+1))%mod1;
        return ans;
    }
    int hash2(string s)
    {
        int ans=0,l=s.length();
        for(int i=0;i<l;i++)ans=(ans*base%mod2+(s[i]-'0'+1))%mod2;
        return ans;
    }
    signed main()
    {
        //...
        for(int i=1;i<=n;i++)
        {
            string s;cin >> s;
            a[++cnt].x=hash1(s);
            a[cnt].y=hash2(s);
        }
        finalans=n;
        sort(a,a+n+1,cmp);
        for(int i=1;i<n;i++)
            if(a[i].x==a[i+1].x||a[i].y==a[i+1].y)
                finalans--;
        cout << finalans;
        return 0;
    }
    

    2. KMP

    3. manacher

    4. Trie树

    5. 最小表示法

    6. Z函数(exKMP)

    7. AC自动机

    8. 子序列自动机

    9. 后缀数组

    10. 后缀自动机

    11. 回文自动机

  • 相关阅读:
    第四周JSP作业
    jsp第二次作业
    3.4软件管理与测试作业
    jsp3月3日作业
    课后listview作业
    安卓sql
    activity带数据跳转
    answers
    阿里云ESC无法使用python发送邮件的问题
    Ubuntu 更改时区
  • 原文地址:https://www.cnblogs.com/pjykk/p/15000020.html
Copyright © 2011-2022 走看看