zoukankan      html  css  js  c++  java
  • ekmp模板

    模板,自己用

    ll enext[maxn],extend[maxn];
    char s[maxn],t[maxn];
    
    void getnext(char *t)
    {
        int len=strlen(t),a=0;
        enext[0]=len;
        while(a<len-1 && t[a]==t[a+1]) a++;
        enext[1]=a;
        a=1;
        for(int k=2;k<len;k++)
        {
            int p=a+enext[a]-1,L=enext[k-a];
            if((k-1)+L>=p)
            {
                int j=(p-k+1)>0 ? (p-k+1) : 0;
                while(k+j<len && t[k+j]==t[j]) j++;
                enext[k]=j;
                a=k;
            }
            else
                enext[k]=L;
        }
    }
    
    void getextend(char *s,char *t)
    {
        int slen=strlen(s),tlen=strlen(t),a=0;
        getnext(t);
        int MinLen = slen < tlen ? slen : tlen;
        while(a<MinLen && s[a]==t[a]) a++;
        extend[0]=a;
        a=0;
        for(int k=1;k<slen;k++)
        {
            int p=a+extend[a]-1, L=enext[k-a];
            if((k-1)+L>=p)
            {
                int j=(p-k+1)>0 ? (p-k+1) : 0;
                while(k+j<slen && j<tlen && s[k+j]==t[j]) j++;
                extend[k]=j;
                a=k;
            }
            else
                extend[k]=L;
        }
    }
  • 相关阅读:
    pytroch tensor初始化权重、改变tensor某行列为指定值
    蜜蜂寻路
    童年生活二三事
    母牛的故事
    星际密码
    斐波那契凤尾
    客似云来
    养兔子
    NowCoder数列
    采花生
  • 原文地址:https://www.cnblogs.com/benzikun/p/11261571.html
Copyright © 2011-2022 走看看