玄关球调
  • 板块学术版
  • 楼主cmaths
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/1/8 18:33
  • 上次更新2024/1/8 19:06:18
查看原帖
玄关球调
300098
cmaths楼主2024/1/8 18:33
void ist(int c)
{
    int cur = newn();
    sam[cur].len = sam[last].len + 1;
    node[cur] = {cur, sam[cur].len};
    sam[cur].epsiz = 1;
    int p;
    for(p = last; p && !sam[p].nxt[c]; p = sam[p].fa)
    {
        sam[p].nxt[c] = cur;
    }
    if(!p)
    {
        sam[cur].fa = 1;
    }
    else
    {
        int q = sam[p].nxt[c];
        if(sam[q].len = sam[p].len + 1)
        {
            sam[cur].fa = q;
        }
        else
        {
            int q1 = newn();
            sam[q1] = sam[q];
            sam[q1].len = sam[p].len + 1;
            node[q1] = {q1, sam[q1].len};
            for(; p && sam[p].nxt[c] == q; p = sam[p].fa)
            {
                sam[p].nxt[c] = q1;
            }
            sam[q1].fa = sam[cur].fa = q;
        }
    }
    last = cur;
}

这个 SAM 建图哪里错了 qwq

萌新刚学 SAM

2024/1/8 18:33
加载中...