if(i+z[pos]-1<mx) z[i]=z[pos];
如果你 mxmxmx 表达的是到达的最远处(而不是下一位)时,并且数组从下标为 111 开始存,处理 zzz 数组可以看看优化条件有没有取等,实测是不能取的,因为当 z[pos]z[pos]z[pos] 等于 000 时,iii 反而会倒着走,如果此时 mxmxmx 刚好在 iii 前一位,就直接等于 000 了。
提供一组 hackhackhack 数据:
iaoomp edagnaocuueedyw
36 7