求endpos大小是不是表示前缀的节点cnt加1,在parent树上往上加
by 冬刃 @ 2021-05-11 01:57:17
您处理虚拟状态的代码乱了。
SAM 在表示空串的时候就应该有一个表示虚拟状态的节点,而您在代码中没有虚拟状态。
```cpp
if(p == -1) {
st[cur].link = 0;
}
```
您代码中是这么写的
您直接将 link 指向了 0 号节点而不是虚拟状态。
by zimujun @ 2021-05-11 08:22:51
建议用 1 做初始下表兼虚拟状态
0 index 和 1 index 不仅仅是代码习惯的问题,看情况灵活运用才对啊
by zimujun @ 2021-05-11 08:24:02
@[zimujunqwq](/user/118196)
谢谢大佬,我再研究看看
by 冬刃 @ 2021-05-11 08:42:55
@[zimujunqwq](/user/118196)
好像不是这个问题,我的零就是初始下标
by 冬刃 @ 2021-05-11 08:49:40
找到bug了,克隆状态的时候把cnt也克隆了,忘了改成0了
by 冬刃 @ 2021-05-11 08:50:25
感谢 orz
我也错这了.
by uncesspath @ 2023-11-08 15:53:02