博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【BZOJ】2946: [Poi2000]公共串
阅读量:7169 次
发布时间:2019-06-29

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

题意:给n个串,求最大公共子串。(1<=n<=5,每个串长度<=2000)

#include 
using namespace std;const int N=2005<<1;struct sam { int cnt, root, last, l[N], c[N][26], f[N], p[N], mx[N], mxl[N]; sam() { cnt=0; root=last=++cnt; } void add(int x) { int now=last, a=++cnt; last=a; l[a]=l[now]+1; for(; now && !c[now][x]; now=f[now]) c[now][x]=a; if(!now) { f[a]=root; return; } int q=c[now][x]; if(l[q]==l[now]+1) { f[a]=q; return; } int b=++cnt; memcpy(c[b], c[q], sizeof c[q]); l[b]=l[now]+1; f[b]=f[q]; f[q]=f[a]=b; for(; now && c[now][x]==q; now=f[now]) c[now][x]=b; } void build(char *s) { int len=strlen(s); for(int i=0; i

  


 

复习了下sam....

转载地址:http://enmwm.baihongyu.com/

你可能感兴趣的文章
<init-param>和<context-param>两个标签的区别
查看>>
有关list集合转换为map集合
查看>>
A记录 MX记录 CNAME记录 TXT记录 SRV记录
查看>>
“最美叔叔”谢尚威向“最美女教师”张丽莉致意
查看>>
Activiti(二)在官方实例上运行一个流程
查看>>
Redis集群创建
查看>>
如何在Amazon AWS上设置一台Linux服务器
查看>>
Python读取修改ini配置文件[ConfigParser]
查看>>
Linux虚拟化技术—CentOS7.4下KVM虚拟化一 安装配置及基本操作
查看>>
我的高质量软件发布心得
查看>>
DecimalFormat 类基本使用
查看>>
es6 Set和map数据结构
查看>>
数字键盘三
查看>>
12个值得关注的顶级JS库
查看>>
线程安全的CopyOnWriteArrayList介绍
查看>>
Java并发编程(一)Thread详解
查看>>
RealEvo 安装问题浅析
查看>>
Java并发核心-exchanger
查看>>
mysql数据迁移之<存储过程>
查看>>
5、前后端分离跨域问题
查看>>