传送门

  好久没刷bzoj惹……

  题意不说可以嘛。

  首先二分答案。

  SAM的事情搞完以后就是dp辣。

  我们已经对于每个位置i,找到了最小的一个k,使得[k,i]这个子串在模版串中出现过。那么我们需要做的是把f[i]给min上f[k]到f[i-x],直接搞是$n^2logn$的,套个数据结构也是两个log的。然而如果一个位置j不在合法的区间中,那么以后也不会进入,那么直接用一个单调队列维护就好了。

#include<cstdio>
#include<cstring>
#include<algorithm>
#define MN 1200000
using namespace std;
int read_p,read_ca,read_f;
inline int read(){
read_p=;read_ca=getchar();read_f=;
while(read_ca<''||read_ca>'') read_f=read_ca=='-'?-:read_f,read_ca=getchar();
while(read_ca>=''&&read_ca<='') read_p=read_p*+read_ca-,read_ca=getchar();
return read_p*read_f;
}
struct na{int l,f,t[];na(){t[]=t[]=;f=-;}}t[MN<<];
int n,m,la,num=,mi[MN],st[MN];
char s[MN];
inline void add(int x){
int p=++num;t[p].l=t[la].l+;
while (la!=-&&!t[la].t[x]) t[la].t[x]=p,la=t[la].f;
if (la==-) t[p].f=;else{
int o=t[la].t[x];
if (t[o].l==t[la].l+) t[p].f=o;else{
int np=++num;
t[np]=t[o];
t[np].l=t[la].l+;
t[o].f=t[p].f=np;
while (la!=-&&t[la].t[x]==o) t[la].t[x]=np,la=t[la].f;
}
}
la=p;
}
inline bool ju(int x){
mi[]=;
int i,p,l,L=,R=;
for (i=;s[i-];i++) mi[i]=1e9;
for (i=,p=,l=;s[i];i++){
while (p&&!t[p].t[s[i]-'']) p=t[p].f,l=t[p].l;
if (t[p].t[s[i]-'']) p=t[p].t[s[i]-''],l++;
if (i+>=x){
while(L<=R&&mi[i+-x]<=mi[st[R]]) R--;
st[++R]=i+-x;
}
while (L<=R&&st[L]<=i-l) L++;
if (L<=R) if (mi[i+]>mi[st[L]]) mi[i+]=mi[st[L]];
if (mi[i+]>mi[i]+) mi[i+]=mi[i]+;
}
return mi[i]*<=i;
}
int main(){
n=read();m=read();
for (int i=;i<=m;i++){
la=;scanf("%s",s);
for (int j=;s[j];j++) add(s[j]-'');
}
for (int i=;i<=n;i++){
scanf("%s",s);
int l=,r=strlen(s),mid;
while(l<r) if (ju(mid=l+r+>>)) l=mid;else r=mid-;
printf("%d\n",l);
}
}

最新文章

  1. asp.net 文件 操作方法
  2. Ubuntu14.04安装中文输入法以及解决Gedit中文乱码问题[转载]
  3. JDBC操作Oracle数据库
  4. core java 5~6(OOP &amp; 高级语言特征)
  5. Linux Rsync
  6. Object-C单元测试&amp;MOCK(摘录精选)
  7. 【洛谷T7243】【CJOJ2225】【BYVoid S3】珠光宝气阁(潜入辛迪加)
  8. 数据结构与算法 —— 链表linked list(05)
  9. SQL Server性能优化(8)堆表结构介绍
  10. MVC和MVP设计模式
  11. win10 系统 wifi自动断开连接 wifi热点不稳定
  12. php5.5.7添加pgsql,pdo_pgsql,swoole
  13. update layer tree导致页面卡顿
  14. vue-axios的application/x-www-form-urlencod的post请求无法解析参数
  15. Problem D: 类的初体验(IV)
  16. 51nod 1295 XOR key 可持久化01字典树
  17. BZOJ3730 震波 | 动态点分治
  18. tensorflow scope的作用
  19. 【linux】suse linux 常用命令
  20. Docker for windows可用性检查

热门文章

  1. Android Studio 快速开发
  2. git入门(msysgit安装)
  3. geoserver集成以及部署arcgis server瓦片数据
  4. 669. Trim a Binary Search Tree
  5. date 命令详解
  6. 进程间通信 ipcs
  7. display:inline-block引发的间隙思考
  8. Xamarin.Android中实现延迟跳转
  9. JavaScript 之DOM&amp;BOM
  10. vue的挖坑和爬坑之css背景图样式终极解决方法