【bzoj】1717 [Usaco2006 Dec]Milk Patterns 产奶的模式
【算法】后缀数组
【题解】后缀数组
由于m太大,先离散化。
然后处理SA和LCP。
最后用单调队列处理即可。
注意实际上队列头尾长度限制是K-1.
删队尾不要删过头
i≥K才能开始统计答案。
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int n,m,s[maxn],x[maxn],y[maxn],base[maxn],sa[maxn],h[maxn],K,q[maxn];
struct lshs{int ord,num;}lsh[maxn];
bool cmp(lshs a,lshs b)
{return a.num<b.num;}
void build_sa(int m)
{
for(int i=;i<=m;i++)base[i]=;
for(int i=;i<=n;i++)base[x[i]=s[i]]++;
for(int i=;i<=m;i++)base[i]+=base[i-];
for(int i=n;i>=;i--)sa[base[x[i]]--]=i;
for(int k=;k<=n;k<<=)
{
int p=;
for(int i=n-k+;i<=n;i++)y[++p]=i;
for(int i=;i<=n;i++)if(sa[i]>k)y[++p]=sa[i]-k;
for(int i=;i<=m;i++)base[i]=;
for(int i=;i<=n;i++)base[x[i]]++;
for(int i=;i<=m;i++)base[i]+=base[i-];
for(int i=n;i>=;i--)sa[base[x[y[i]]]--]=y[i];
swap(x,y);
p=;x[sa[]]=;
for(int i=;i<=n;i++)
x[sa[i]]=y[sa[i]]==y[sa[i-]]&&y[sa[i]+k]==y[sa[i-]+k]?p:++p;
if(p>=n)break;
m=p;
}
int k=;
for(int i=;i<=n;i++)
{
if(k)k--;
int j=sa[x[i]-];
while(s[i+k]==s[j+k])k++;
h[x[i]]=k;
}
}
int main()
{
scanf("%d%d",&n,&K);
for(int i=;i<=n;i++)
{
scanf("%d",&lsh[i].num);
lsh[i].ord=i;
}
sort(lsh+,lsh+n+,cmp);
int p=;s[lsh[].ord]=;
for(int i=;i<=n;i++)s[lsh[i].ord]=lsh[i].num==lsh[i-].num?p:++p;
build_sa(p);
K--;
int head=,tail=;
int ans=;
for(int i=;i<=n;i++)
{
while(h[q[tail-]]>h[i]&&tail>head)tail--;
q[tail++]=i;
if(i-q[head]>=K)head++;
if(i>=K+)ans=max(ans,h[q[head]]);
}
printf("%d",ans);
return ;
}
【bzoj】1717 [Usaco2006 Dec]Milk Patterns 产奶的模式的更多相关文章
- BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 [后缀数组]
1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1017 Solved: ...
- BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式( 二分答案 + 后缀数组 )
二分答案m, 后缀数组求出height数组后分组来判断. ------------------------------------------------------------ #include&l ...
- BZOJ#1717:[Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+单调队列)
1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Description 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的 ...
- BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
Description 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个"模式". ...
- 【刷题】BZOJ 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式
Description 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个"模式". ...
- BZOJ 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组)
[题目链接]http://www.lydsy.com/JudgeOnline/problem.php?id=1717 [题目大意] 求一个最长的串,使得其在母串中出现的次数达到要求 [题解] 二分答案 ...
- bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式【后缀自动机】
就是后缀自动机的板子嘛..构造完自动机之后拓扑一下,记录size,对于size大于k的点和ans取max #include<iostream> #include<cstdio> ...
- 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1469 Solved: ...
- bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式
后缀数组+二分答案+离散化.(上次写的时候看数据小没离散化然后一直WA...写了lsj师兄的写法. #include<cstdio> #include<cstring> #in ...
随机推荐
- 【IdentityServer4文档】- 整体情况
整体概况 大多数现代应用程序看起来或多或少像这样: 最常见的交互是: 浏览器与 Web 应用程序进行通信 Web 应用程序与 Web API 进行通信(有时是Web应用程序自己发起,有时代表用户发起) ...
- LintCode-112.删除排序链表中的重复元素
删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素每个元素只留下一个. 样例 给出 1->1->2->null,返回 1->2->null 给出 1-> ...
- LintCode-379.将数组重新排序以构造最小值
将数组重新排序以构造最小值 给定一个整数数组,请将其重新排序,以构造最小值. 注意事项 The result may be very large, so you need to return a st ...
- iOS-创建UIScrollerView(封装UIScrollerView)
创建继承于UIView的类WJImageScrollView,代码实现如下: WJImageScrollView.h #import <UIKit/UIKit.h> /**点击图片bloc ...
- node.js cmd 输入npm-v无反应
今天安装node,先是提示node版本太低.去官网更新了一下,然后 npm install -g vue-cli 结果出了个"npm ERR! errno -4048" 百度出 这 ...
- Windows资源监控工具大全
在利用LoadRunner进行性能测试的时候,Windows服务器的资源是经常需要监控的对象.其实除了LoadRunner提供的计数器,似乎Window服务器并不像Unix或者Linux提供众多的性能 ...
- 后缀自动机SAM学习笔记
前言(2019.1.6) 已经是二周目了呢... 之前还是有一些东西没有理解到位 重新写一下吧 后缀自动机的一些基本概念 参考资料和例子 from hihocoder DZYO神仙翻译的神仙论文 简而 ...
- BZOJ1047:[HAOI2007]理想的正方形——题解
http://www.lydsy.com/JudgeOnline/problem.php?id=1047 https://www.luogu.org/problemnew/show/P2216#sub ...
- NOIP2015Day2T2子串(字符串dp)
又被“if(a=b)”坑了QAQ...写C++还是得开Warning,这么久了pascal还没改过来咋回事啊QWQ 题目大意就不说了OWO 网上的题解都不怎么看得懂啊...好像写得都很乱?还是我太sb ...
- Centos +django+nginx
WSGI配置 #!/usr/bin/python """ WSGI config for rana project. It exposes the WSGI callab ...