• 后缀自动机SAM 学习笔记


    upd:学会后缀树了,所以这东西就扔了

    不是很理解

    struct deme{int len,fa,to[26];}dot[m7];
    void insert(int ch){
    	cnt++;
    	int p=las,np=cnt;las=np;
    	num[np]=1;
    	dot[np].len=dot[p].len+1;
    	
    	while(p&&!dot[p].to[ch])dot[p].to[ch]=np,p=dot[p].fa;
    	if(!p){dot[np].fa=1;return;}
    	
    	int q=dot[p].to[ch];
    	if(dot[q].len==dot[p].len+1){dot[np].fa=q;return;}
    	
    	cnt++;int nq=cnt;
    	dot[nq]=dot[q];
    	dot[nq].len=dot[p].len+1,dot[q].fa=dot[np].fa=nq;
    	while(p&&dot[p].to[ch]==q)dot[p].to[ch]=nq,p=dot[p].fa;
    }
    
  • 相关阅读:
    053364
    053363
    oracle导出批量表N行记录
    053362
    053361
    053360
    053359
    053358
    053357
    053356
  • 原文地址:https://www.cnblogs.com/BlankAo/p/14385530.html
Copyright © 2020-2023  润新知