在这道题中,如果是用了基数排序的话写法有两种
一种是
for(i=1;i<=tot;i++) cnt[rk[i]=len[i]]++;
for(i=1;i<=n;i++) cnt[i]+=cnt[i-1];
for(i=tot;i;i--) sa[cnt[rk[i]]--]=i;
还有一种是
for (int i=1;i<=tot;i++) c[T[i].val]++;
for (int i=1;i<=len;i++) c[i]+=c[i-1];
for (int i=1;i<=tot;i++) id[c[T[i].val]--]=i;
这两段代码变量的意义都一样,但是循环一个是正着做一个是倒着做(蒟蒻并没有想通为什么可以正着做)
所以问一下是数据水没卡这种排序还是两种排序都是正确的