洛谷 3809 : 后缀排序
发布日期:2021-06-30 16:05:59 浏览次数:2 分类:技术文章

本文共 573 字,大约阅读时间需要 1 分钟。

后缀数组模板题。

花了半天时间去理解基于倍增和基数排序的后缀数组,理解之后,不用看模板直接开敲,一发AC,挺舒服的。
我是看<<算法竞赛入门经典训练指南>>这本书的,思路讲得挺好的,就是代码注释有点少,不利于理解。
加上这篇博客代码的注释就正好啦:
我的代码没写注释,怕误导别人。

详细请看代码:

#include
using namespace std;const int maxn=1000000+100;char ch[maxn];int sa[maxn],c[maxn],x[maxn],y[maxn]; int n,m;void getSa(){
for(int i=0;i
=k) y[num++]=sa[i]-k; for(int i=0;i
=0;i--) sa[--c[x[y[i]]]]=y[i]; swap(x,y); int start=0; x[sa[0]]=start++; for(int i=1;i
=n) break; m=start; } }int main(){
scanf("%s",ch); n=strlen(ch); m=123; getSa(); for(int i=0;i

转载地址:https://kaven.blog.csdn.net/article/details/81194645 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:HDU 1542:Atlantis(线段树+扫描线+离散化)
下一篇:2018 Multi-University Training Contest 1 :Distinct Values

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月12日 16时25分28秒