博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3261 Milk Patterns
阅读量:6714 次
发布时间:2019-06-25

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

二分答案,利用height数组进行判定。

1 #include
2 #include
3 #include
4 using namespace std; 5 const int maxn=20000+10; 6 const int maxvalue=1000000+10; 7 int s[maxn]; 8 int sa[maxn],t[maxn],t2[maxn],c[maxvalue],n; 9 int rank[maxn],height[maxn];10 void build_sa(int m)11 {12 int i,*x=t,*y=t2;13 for(i=0;i
=0;i--) sa[--c[x[i]]]=i;17 18 for(int k=1;k<=n;k<<=1)19 {20 int p=0;21 for(i=n-k;i
=k) y[p++]=sa[i]-k;23 24 for(i=0;i
=0;i--) sa[--c[x[y[i]]]]=y[i];28 29 swap(x,y);30 p=1;x[sa[0]]=0;31 for(i=1;i
=n) break;34 m=p;35 }36 }37 void getHeight()38 {39 int i,k=0;40 for(i=0;i
=num-1) return true;60 }61 }62 return false;63 }64 int main()65 {66 int k;67 while(scanf("%d%d",&n,&k)!=EOF)68 {69 int maxv=0;70 for(int i=0;i
maxv) maxv=s[i];74 }75 build_sa(maxv+1);76 getHeight();77 int l=1,r=n/2;78 int ans=-1;79 while(l<=r)80 {81 int mid=(l+r)>>1;82 if(check(mid,k))83 {84 ans=mid;85 l=mid+1;86 }87 else88 r=mid-1;89 }90 printf("%d\n",ans);91 }92 return 0;93 }

转载于:https://www.cnblogs.com/sooflow/p/3382243.html

你可能感兴趣的文章
回到上次目录、历史命令查找快捷方式及执行时间显示设置、查看系统版本
查看>>
略论软件模块的加载策略
查看>>
siege 输出结果 理解
查看>>
C语言学习趣事_20_Assert_Setjmp
查看>>
Cogs 1672. [SPOJ375 QTREE]难存的情缘 LCT,树链剖分,填坑计划
查看>>
同一个工程下使用多个.C文件的设计(模块化设计)
查看>>
java贪吃蛇
查看>>
history
查看>>
LeetCode-4Sum
查看>>
GraphicsMagick安装&make命令使用
查看>>
用MeanJS和Yeoman生成器生成【翻译】
查看>>
加个图
查看>>
docker之container
查看>>
入园第一天
查看>>
使用BackgroundWorker解决窗口卡死
查看>>
Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决!
查看>>
【演讲实录】下一代企业级应用架构管理体系
查看>>
1.11考试
查看>>
变量和数据类型 .py
查看>>
最小生成树专题总结
查看>>