博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
「luogu2463」[SDOI2008]Sandy的卡片
阅读量:5311 次
发布时间:2019-06-14

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

获得原数列的差分数列,离散化后接在一起,中间用没有出现过的数分隔,于是问题就转化成求这个数列的最长重复子串,且每一段上都至少有一个子串。

求出后缀数组,二分答案即可。

1 #include
2 #define R register 3 using namespace std; 4 const int N=1010,M=1000010,oo=2e9; 5 int n,m,tot,s[M],a[M],numpos[M]; 6 int x[M<<1],y[M<<1],sa[M<<1],rank[M],h[M],height[M],cnt[M],bel[M]; 7 int cmp(const int xx,const int yy){
return a[xx]
n-k;i--) y[++num]=i;16 for(R int i=1;i<=n;i++) if(sa[i]>k) y[++num]=sa[i]-k;17 for(R int i=1;i<=n;i++) cnt[x[i]]++;18 for(R int i=2;i<=m;i++) cnt[i]+=cnt[i-1];19 for(R int i=n;i;i--) sa[cnt[x[y[i]]]--]=y[i];20 for(R int i=1;i<=m;i++) cnt[i]=0;21 swap(x,y);22 x[sa[1]]=num=1;23 for(R int i=2;i<=n;i++){24 if(y[sa[i]]!=y[sa[i-1]]||y[sa[i]+k]!=y[sa[i-1]+k]) num++;25 x[sa[i]]=num;26 }27 if(num>=n) break;28 m=num;29 }30 for(R int i=1;i<=n;i++) rank[sa[i]]=i;31 int t=0;32 for(R int i=1;i<=n;i++){33 if(t) t--;34 while(rank[i]-1&&s[i+t]==s[sa[rank[i]-1]+t]) t++;35 h[i]=t,height[rank[i]]=t;36 }37 }38 bool vis[N];39 bool check(int k){40 memset(vis,0,sizeof(vis));41 vis[0]=1;42 int minh=oo,cc=0;43 for(int i=1;i<=n;i++){44 minh=min(minh,height[i]);45 if(minh
=1&&!vis[bel[sa[i-1]]]) vis[bel[sa[i-1]]]=1,cc++;52 if(cc>=tot) return 1;53 }54 }55 return 0;56 }57 int main(){58 int t1,t2,t3,div=1000000000;59 scanf("%d",&tot);60 for(R int i=1;i<=tot;i++){61 scanf("%d%d",&t1,&t2);62 for(int j=1;j
>1;77 if(check(mid)) l=mid+1,ans=mid;78 else r=mid-1;79 }80 printf("%d",ans+1);81 return 0;82 }

 

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

你可能感兴趣的文章
移动前端—图片压缩上传实践
查看>>
Android:如何显示网络图片(转)
查看>>
JAVA和.NET开发过程中的一些不同
查看>>
微分方程数值解Euler法
查看>>
[快速幂]a^b
查看>>
基于流的自动化构建工具------gulp (简单配置)
查看>>
【基本优化实践】【1.3】最大内存参数限制
查看>>
oracle 安装(一)
查看>>
MyEclipse8.5 打开菜单栏的help->Software Updates子菜单
查看>>
Apache 阿帕奇 配置运行环境
查看>>
[转]ofstream/ifstream 文本/二进制 方式 读入/写出 数据方法
查看>>
【VIM】vimrc文件的基本设置
查看>>
【实习项目记录】(三)调整网络图片固定宽高
查看>>
Apache 使用localhost(127.0.0.1)可以访问,使用本机IP(局域网)不能访问
查看>>
ASP.NET获取自增长列(标识列)的ID
查看>>
分析MySQL各项指标
查看>>
安装虚拟机
查看>>
Webserver推送技术
查看>>
SSI框架总结
查看>>
空间分析概述
查看>>