把两个串接到一起求一个SA,然后找最大的sa[i]和sa[i-1]不是一个串的he[i]

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=500005;
int n,m,wa[N],wb[N],wv[N],wsu[N],sa[N],rk[N],he[N],bl[N],ans;
char s[N],t[N];
bool cmp(int r[],int a,int b,int l)
{
return r[a]==r[b]&&r[a+l]==r[b+l];
}
void saa(char r[],int n,int m)
{
int *x=wa,*y=wb;
for(int i=0;i<=m;i++)
wsu[i]=0;
for(int i=1;i<=n;i++)
wsu[x[i]=r[i]]++;
for(int i=1;i<=m;i++)
wsu[i]+=wsu[i-1];
for(int i=n;i>=1;i--)
sa[wsu[x[i]]--]=i;
for(int j=1,p=1;j<n&&p<n;j<<=1,m=p)
{
p=0;
for(int i=n-j+1;i<=n;i++)
y[++p]=i;
for(int i=1;i<=n;i++)
if(sa[i]>j)
y[++p]=sa[i]-j;
for(int i=1;i<=n;i++)
wv[i]=x[y[i]];
for(int i=0;i<=m;i++)
wsu[i]=0;
for(int i=1;i<=n;i++)
wsu[wv[i]]++;
for(int i=1;i<=m;i++)
wsu[i]+=wsu[i-1];
for(int i=n;i>=1;i--)
sa[wsu[wv[i]]--]=y[i];
swap(x,y);
p=1;
x[sa[1]]=1;
for(int i=2;i<=n;i++)
x[sa[i]]=cmp(y,sa[i-1],sa[i],j)?p:++p;
}
for(int i=1;i<=n;i++)
rk[sa[i]]=i;
for(int i=1,j,k=0;i<=n;he[rk[i++]]=k)
for(k?k--:0,j=sa[rk[i]-1];r[i+k]==r[j+k];k++);
}
int main()
{
scanf("%s%s",s+1,t+1);
n=strlen(s+1),m=strlen(t+1);
for(int i=n+1;i<=n+m;i++)
s[i]=t[i-n],bl[i]=1;
n+=m;
saa(s,n,200);
for(int i=2;i<=n;i++)
if(bl[sa[i-1]]!=bl[sa[i]])
ans=max(ans,he[i]);
printf("%d\n",ans);
return 0;
}

最新文章

  1. weka
  2. 解决chrome在docky上的图标模糊或不能锁定的问题
  3. setTimeout 0秒
  4. POJ题目分类(转)
  5. Linux coredump学习笔记
  6. Protel99se教程五:protel99se的自动布线
  7. windows server 2016安装
  8. Python IO模型
  9. The file left unchanged.
  10. jsoncpp构造json字符串和json数组
  11. Spring boot 入门四:spring boot 整合mybatis 实现CRUD操作
  12. Linux USB驱动学习总结(三)---- USB鼠标的加载、初始化和通信过程
  13. 更改Android应用程序的图标
  14. 查找mysql的my.cnf位置
  15. Mybatis源码分析之Mapper文件解析
  16. 如何使用花生壳 发布WCF服务 进行外网访问 z
  17. [Android] 录音与播放录音实现
  18. iptables详解(7):iptables扩展之udp扩展与icmp扩展
  19. Win10默认浏览器怎么设置
  20. JavaScript将最终获得正确的异步编程

热门文章

  1. lua 异常 错误处理 pcall
  2. 机器学习技法总结(六)Decision Tree Hypothesis
  3. 基于SpringMVC框架使用ECharts3.0实现堆叠条形图的绘制(下篇)
  4. spring test---測试SpringMvc初识
  5. Sequelize入门一
  6. MySQL的简单优化
  7. 百度dureos CMake Error
  8. Notepad++文本编辑器 快捷键
  9. bzoj5483: [Usaco2018 Dec]Balance Beam
  10. 第四届蓝桥杯C++B组省赛