萌新求助,全WA

P3804 【模板】后缀自动机(SAM)

求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


|