博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Uva 12206 Stammering Aliens
阅读量:4955 次
发布时间:2019-06-12

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

题目描述

输入输出格式

输入格式:

 

 

输出格式:

 

 

输入输出样例

输入样例#1: 
3baaaababababbababbab11baaaababababbababbab3cccccc0
输出样例#1: 
5 12none4 2     这个题后缀数组或者二分+hash好像都能做,,,但是我只是练一下后缀自动机而已hhhhh 这个题我们求的显然就是right集合大小>=m的max{}的最大值,至于求最右开端的话,我们只需要记录一下 right集合的最右点是哪个就行了,然后用这个减去答案长度就是最右开端。
#include
#include
#include
#include
#include
#include
#define ll long long#define maxn 170005using namespace std;int l[maxn],siz[maxn],n,r[maxn];int cnt=1,pre=1,m,ans,pos;int ch[maxn][26],f[maxn];int a[maxn],c[maxn];char s[maxn];inline void init(){ memset(ch,0,sizeof(ch)); memset(f,0,sizeof(f)); memset(c,0,sizeof(c)); memset(siz,0,sizeof(siz)); memset(r,0,sizeof(r)); cnt=pre=1,l[1]=siz[1]=0; ans=pos=0;}inline void ins(int x){ int p=pre,np=++cnt; pre=np,l[np]=l[p]+1; siz[np]=1,r[np]=l[np]; for(;p&&!ch[p][x];p=f[p]) ch[p][x]=np; if(!p) f[np]=1; else{ int q=ch[p][x]; if(l[q]==l[p]+1) f[np]=q; else{ int nq=++cnt; l[nq]=l[p]+1; memcpy(ch[nq],ch[q],sizeof(ch[q])); f[nq]=f[q]; f[q]=f[np]=nq; for(;ch[p][x]==q;p=f[p]) ch[p][x]=nq; } }}inline void build(){ for(int i=0;i
=0;i--) c[i]+=c[i+1]; for(int i=1;i<=cnt;i++) a[c[l[i]]--]=i;}inline void solve(){ for(int i=1;i<=cnt;i++){ int now=a[i]; siz[f[now]]+=siz[now]; r[f[now]]=max(r[f[now]],r[now]); if(l[now]&&siz[now]>=m){ if(l[now]>ans) ans=l[now],pos=r[now]; else if(ans==l[now]&&r[now]>pos) pos=r[now]; } }}int main(){ while(scanf("%d",&m)==1&&m){ scanf("%s",s),n=strlen(s); init(); build(); solve(); if(ans) printf("%d %d\n",ans,pos-ans); else puts("none"); } return 0;}
 

  

 

转载于:https://www.cnblogs.com/JYYHH/p/8456575.html

你可能感兴趣的文章
c#中从string数组转换到int数组
查看>>
Scrapy入门程序点评
查看>>
DotNetty网络通信框架学习之源码分析
查看>>
8.1 Android Basic 数据存储 Preferences Structured(分组的Preferences)
查看>>
原因和证明
查看>>
VC6.0图像处理2--图像的反色
查看>>
Snoop, 对WPF程序有效的SPY++机制
查看>>
JAVA程序猿怎么才干高速查找到学习资料?
查看>>
使用axel下载百度云文件
查看>>
Qt中图像的显示与基本操作
查看>>
详解软件工程之软件测试
查看>>
WCF(二) 使用配置文件实现WCF应用程序
查看>>
【CodeForces 803 C】Maximal GCD(GCD+思维)
查看>>
python 去掉换行符或者改为其他方式结尾的方法(end='')
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
LUOGU P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…
查看>>