rt,我看很多人都写的 for(;ch[p][c] == q;p = fa[p]) ch[p][c] = nq;, 其中 ch 的定义为 map<int,int> ch[N] 但这样是不对的啊,当 ch[p][c] 不存在的时候它会无中生一个 ch[p][c]=0 出来,具体原因是因为 map 一旦访问了某个下标就会自动给这个下标建个初始值出来……
for(;ch[p][c] == q;p = fa[p]) ch[p][c] = nq;
map<int,int> ch[N]
ch[p][c]
ch[p][c]=0