一点疑问: 当创建nq节点时,要不要把nq的cnt标记赋值为1? 讲道理nq节点也是代表一个子串啊,不过网上的模板都没赋值. 2017.9.18 update: 把memset部分重写,改成用节点用到时再初始化,初始化所有节点可能被卡. fa,len,cnt数组其实不用清空,因为用时都赋值了. struct SAM { <<;//大小为字符串长度两倍 ; int tot, last, ch[MAXN][LetterSize], fa[MAXN], len[MAXN]; int sum[MAXN…