思路:

对所有序列差分一下

公共串的长度+1就是答案了

二分 扫一遍height即可,..

//By SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=;
int n,xx,ans,a[N],bb=,top,s[N*N],pos[N*N],A[N*N],B[N*N],cntA[N*N],cntB[N*N],sa[N*N],rk[N*N],tsa[N*N],ht[N*N],vis[N];
void SA(){
for(int i=;i<=top;i++)cntA[s[i]]++;
for(int i=;i<N;i++)cntA[i]+=cntA[i-];
for(int i=top;i;i--)sa[cntA[s[i]]--]=i;
rk[sa[]]=;
for(int i=;i<=top;i++)rk[sa[i]]=rk[sa[i-]]+(s[sa[i]]!=s[sa[i-]]);
for(int l=;rk[sa[top]]<top;l<<=){
memset(cntA,,sizeof(cntA));
memset(cntB,,sizeof(cntB));
for(int i=;i<=top;i++)
cntA[A[i]=rk[i]]++,
cntB[B[i]=i+l<=top?rk[i+l]:]++;
for(int i=;i<=top;i++)cntA[i]+=cntA[i-],cntB[i]+=cntB[i-];
for(int i=top;i;i--)tsa[cntB[B[i]]--]=i;
for(int i=top;i;i--)sa[cntA[A[tsa[i]]]--]=tsa[i];
rk[sa[]]=;
for(int i=;i<=top;i++)rk[sa[i]]=rk[sa[i-]]+(A[sa[i]]!=A[sa[i-]]||B[sa[i]]!=B[sa[i-]]);
}
for(int i=,j=;i<=top;i++){
j=j?j-:;
while(s[i+j]==s[sa[rk[i]-]+j])j++;
ht[rk[i]]=j;
}
}
bool check(int mid){
int num=;
for(int i=;i<=top;i++){
if(ht[i]<mid)memset(vis,,sizeof(vis)),num=;
else{
if(!vis[pos[sa[i]]])num++,vis[pos[sa[i]]]=;
if(!vis[pos[sa[i-]]])num++,vis[pos[sa[i-]]]=;
if(num==n)return ;
}
}return ;
}
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&xx);
for(int j=;j<=xx;j++){
scanf("%d",&a[j]);
if(j!=)s[++top]=a[j]-a[j-];
pos[top]=i;
}
s[++top]=++bb;
}
SA();
int l=,r=;
while(l<=r){
int mid=(l+r)>>;
if(check(mid))l=mid+,ans=mid;
else r=mid-;
}printf("%d\n",ans+);
}

最新文章

  1. [laravel] Laravel - composer install
  2. ros使用rplidar hector_mapping建地图
  3. [tp3.2.1]sql查询语句(一)
  4. 【转载】C#后台声明式验证,远离if验证
  5. python 默认的系统编码 sys.setdefaultencoding
  6. 命令passwd报错因inode节点处理记录
  7. Linux宕机最安全的重启方法(你肯定不知道)
  8. Linux服务器导入导出SVN项目
  9. javascript-基本数据类型和转换
  10. StringTokenizer使用笔记
  11. dotnet core部署方式两则:CLI、IIS
  12. 模板语言变量,js变量,js自执行函数之前嵌套调用
  13. response.sendRedirect(url)与request.getRequestDispatcher(url).forward(request,response)的区别
  14. centos6 下 yum 升级php5 到 php7
  15. .net core identity(一)简单运用
  16. Java 集合并交补
  17. JavaEE中表现层、持久层、业务层的职责分析(转载)
  18. cost加上了
  19. [转]C++ error C2011: “XXX”:“class”类型重定义
  20. 关于TOCTTOU攻击的简介

热门文章

  1. mysql在windows上安装
  2. https webservice通讯 参考网址 http://blog.csdn.net/small____fish/article/details/8214938
  3. JavaScript 复杂判断的优雅写法
  4. JAVA正则表达式matcher.find()和 matcher.matches()的区别
  5. 渗透实战(周二):FLUXION暴力破解WIFI登录口令
  6. Django——5 自定义过滤器及标签
  7. 3、ceph-deploy之配置使用文件系统
  8. EXt js 学习笔记总结
  9. GSM/GPRS/EDGE/WCDMA/HSDPA/HSUPA--辨析
  10. F - Goldbach`s Conjecture kuangbin 基础数论