首页 > 其他 > 详细

SAM建立模板

时间:2016-08-17 23:09:46      阅读:199      评论:0      收藏:0      [点我收藏+]
int extend(int x,int p) {
    int np=++tot;sam[np].len=sam[p].len+1;
    while (p&&!sam[p].son[x]) sam[p].son[x]=np,p=sam[p].pr;
    if (!p) sam[np].pr=1;else {
        int q=sam[p].son[x];
        if (sam[q].len==sam[p].len+1) sam[np].pr=q;
        else {
            int nq=++tot;
            sam[nq]=sam[q];
            sam[nq].len=sam[p].len+1;
            sam[q].pr=sam[np].pr=nq;
            while (p&&sam[p].son[x]==q) sam[p].son[x]=nq,p=sam[p].pr;
        }
    }
    return np;
}

SAM建立模板

原文:http://blog.csdn.net/alan_cty/article/details/52235497

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!