博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【模板】后缀数组
阅读量:4614 次
发布时间:2019-06-09

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

 注意x,y数组的意义

x[i]表示编号为i的后缀的第一关键字

y[i]表示第二关键字排名为i的后缀编号

h[i]表示编号为i的后缀与其前一名的最大公共前缀

height[i]表示排名为i的后缀与其前一名的最大公共前缀

h[i]>=h[i-1]-1

 

代码打的比较丑,有时间重新打一遍

1 #include
2 using namespace std; 3 const int N=2000010; 4 int n,s[N]; 5 int m,x[N],y[N],sa[N],cnt[N],rank[N]; 6 int h[N],height[N]; 7 char ss[N]; 8 void build_sa(){ 9 for(int i=0;i
=n-k;i--) y[num++]=i;16 for(int i=0;i
=k) y[num++]=sa[i]-k;17 for(int i=0;i
=n) break;30 m=num;31 }32 for(int i=0;i
='0'&&ss[i]<='9') s[i]=ss[i]-'0';53 else if(ss[i]>='A'&&ss[i]<='Z') s[i]=ss[i]-'A'+10;54 else s[i]=ss[i]-'a'+36;55 x[i]=s[i];56 }57 m=62;58 build_sa();build_height();59 for(int i=0;i

 

转载于:https://www.cnblogs.com/mycups/p/8557053.html

你可能感兴趣的文章
vim - manual -个人笔记
查看>>
为什么我们程序员难晋升
查看>>
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>
递归定义
查看>>
kindeditor 代码高亮设置
查看>>
互联网产品的商业模式
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
各浏览器对 onbeforeunload 事件的支持与触发条件实现有差异
查看>>
PHP中获取当前页面的完整URL
查看>>
所谓输入掩码技术,即只有数字键起作用
查看>>
Display对象,Displayable对象
查看>>
安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
查看>>
数据结构(并查集):COGS 260. [NOI2002] 银河英雄传说
查看>>
生产环境下正则的应用实例(一)
查看>>