哈哈哈煮波的奇思妙想之滚动数组+倍增
如果你最后输出的是:
for (int i = 1; i <= n; ++i) {
cout << sa[0][w & 1][i] << " ";
}
这个东西的 w 会为 logn+1,然后有可能你的 w 就没有计算完全,然后就坠机了,所以为了保证 sa[0] 计算完全会输出 w−1,在滚动数组里就是:
for (int i = 1; i <= n; ++i) {
cout << sa[0][1 ^ (w & 1)][i] << " ";
}
这有 90 奇迹