/*
 求可重叠的至少重复K次的最长字串
 以1为下标起点,因为a[i]最大到1000000,所以要先离散一下
 二分长度len
 然后O(n)检验
 后看h[i]是否有连续的一段h[i]大于len的,并且h[i]连续的长度大于K则满足
 */
 #include<stdio.h>
 #include<string.h>
 #include<algorithm>
 using namespace std;
 ;
 int c[maxn],sa[maxn],t1[maxn],t2[maxn],n,m,K,tot,t[maxn],num[maxn],a[maxn],rank[maxn],height[maxn];

 bool cmp(int *r, int a, int b, int l){
     return r[a]==r[b] && r[a+l]==r[b+l];
 }

 void suffix(int *a, int n, int m){
     , *x=t1, *y=t2;
     ; i<=m; i++) c[i]=;
     ; i<=n; i++) c[x[i]=a[i]]++;
     ; i<=m; i++) c[i]+=c[i-];
     ; i--) sa[c[x[i]]--]=i;
     ; j<=n; j<<=){
         p=;
         ; i<=n; i++) y[++p]=i;
         ; i<=n; i++) if (sa[i]>j) y[++p]=sa[i]-j;
         ; i<=m; i++) c[i]=;
         ; i<=n; i++) c[x[y[i]]]++;
         ; i<=m; i++) c[i]+=c[i-];
         ; i--) sa[c[x[y[i]]]--]=y[i];
         swap(x,y); x[sa[]]=; p=;
         ; i<=n; i++)
             x[sa[i]]=cmp(y,sa[i-],sa[i],j)?p:++p;
         m=p; if (p>=n) break;
     }
     //for (int i=1; i<=n; i++) printf("%d\n", sa[i]);
 }

 void get_height(int *a){
     ,j;
     ; i<=n; i++) rank[sa[i]]=i;
     ; i<=n; i++){
         j=sa[rank[i]-];
         k?k--:;
         while (a[j+k]==a[i+k]) k++;
         height[rank[i]]=k;
     }
     //for (int i=1; i<=n; i++) printf("%d\n", height[i]);
 }

 int find(int x){
     , r=tot, ans;
     while (l<=r){
         ;
         ;
         ;
     }
     return ans;
 }

 bool check(int k){
     ;
     ; i<=n; i++){
         if (height[i]>=k) tot++;
         else{
             >=K) ;
             ;
         }
     }
     >=K) ; ;
 }

 int main(){
     scanf("%d%d", &n, &K);
     ; i<=n; i++) scanf("%d", &a[i]),num[i]=a[i];
     sort(num+,num++n); tot=;
     t[++tot]=num[];
     ; i<=n; i++)
         ])
             t[++tot]=num[i];
     ; i<=n; i++) a[i]=find(a[i]);
     suffix(a,n,n);
     get_height(a);
     ,r=n,ans;
     while (l<=r){
         ;
         ;
         ;
     }
     printf("%d\n", ans);
     ;
 } 

bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+二分)的更多相关文章

  1. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式——后缀数组

    Brief Description 给定一个字符串,求至少出现k次的最长重复子串. Algorithm Design 先二分答案,然后将后缀分成若干组.判断有没有一个组的后缀个数不小于k.如果有,那么 ...

  2. BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 [后缀数组]

    1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1017  Solved: ...

  3. 【BZOJ1717】[Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组

    [BZOJ1717][Usaco2006 Dec]Milk Patterns Description 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量 ...

  4. 【bzoj1717】[Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组+离散化

    题目描述 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个“模式”. John的牛奶按质量可以被赋予一 ...

  5. bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式

    后缀数组+二分答案+离散化.(上次写的时候看数据小没离散化然后一直WA...写了lsj师兄的写法. #include<cstdio> #include<cstring> #in ...

  6. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式_后缀数组_二分答案

    Milk Patterns 产奶的模式 bzoj-1717 Usaco-2006 Dec 题目大意:给定一个字符串,求最长的至少出现了$k$次的子串长度. 注释:$1\le n\le 2\cdot 1 ...

  7. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式 (hash构造后缀数组,二分答案)

    以后似乎终于不用去学后缀数组的倍增搞法||DC3等blablaSXBK的方法了= = 定义(来自关于后缀数组的那篇国家集训队论文..) 后缀数组:后缀数组SA是一个一维数组,它保存1..n的某个排列S ...

  8. BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式( 二分答案 + 后缀数组 )

    二分答案m, 后缀数组求出height数组后分组来判断. ------------------------------------------------------------ #include&l ...

  9. BZOJ#1717:[Usaco2006 Dec]Milk Patterns 产奶的模式(后缀数组+单调队列)

    1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Description 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的 ...

随机推荐

  1. 【Alpha】Daily Scrum Meeting第十次

    一.本次Daily Scrum Meeting主要内容 每个人学习情况 测试的任务的安排 Alpha版本展示的具体内容 二.任务安排 学号尾数 昨天做的任务 今天做的任务 任务用时 612 完成将计时 ...

  2. 混合开发 webview 中file 控件 点击后无反应解决方法

    最近在做个项目 ,需要 使用 file 控件上传 图片到服务器 ,在手机浏览器中 可以正常选择照片,但是放到 android 应用中的webview中,file 控件点击后就没有反应. 百度了一番后, ...

  3. ps批量处理图片

    刚刚有朋友问,ps咋做批量动作呢,其实特别简单,基本一劳永逸,用尺寸做个例子,大家看看就知道了.

  4. Android四大组件知识整理

    1. Activity 1.1 什么是Activity? Activity是Context的子类,并可以处理与窗体用户的事件: 1.2 Activity的生命周期 不存在->`onCreate( ...

  5. npm start 作用

    在配置phonecat项目时需要运行npm start在本地配置一个服务器环境,npm start首先会安装一系列的必要程序,这些程序依赖package.json中的内容,package.json中的 ...

  6. Python None comparison: should I use “is” or ==?

    Use is when you want to check against an object's identity (e.g. checking to see if var is None). Us ...

  7. JS中修改属性

    <!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...

  8. 【xcode5的使用】

    layout: post title: "WWDC 2013 Session笔记 - Xcode5和ObjC新特性" date: 2013-06-13 10:05 comments ...

  9. LeetCode之104. Maximum Depth of Binary Tree

    -------------------------------- 递归遍历即可 AC代码: /** * Definition for a binary tree node. * public clas ...

  10. Oracle insert大量数据经验之谈(转)

    在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验. 前提:在做insert数据之前,如果是非生产环境, ...