poj3261】的更多相关文章

http://poj.org/problem?id=3261 (题目链接) 题意 给出n个数和k,求在给出的数中,最长的出现至少k次的可重叠子串. solution 后缀数组论文题,感觉分组思想可能会有大用. 果断后缀数组,求出${sa,height,rank}$.二分答案,每次判断长度${mid}$是否符合出现${k}$次的要求.那么现在的问题是如何判断是否有一个长度为${mid}$的子串在原串中出现了至少${k}$次. 我们采用分组思想.将后缀${sa}$按照${height}$是否大于等于…
题目链接:https://vjudge.net/problem/POJ-3261 Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 17157   Accepted: 7592 Case Time Limit: 2000MS Description Farmer John has noticed that the quality of milk given by his cows varies f…
HDU1686 题意: 找A串在B串中的出现次数(可重叠),可用KMP做,这里只提供哈希算法做的方法 题解: 先得到A串的hash值,然后在B中枚举起点,长度为lena的子串,检验hash值是否相同就可以了. 代码: /* -1 在ull里相当于2的六四次-2 ull炸了就当mod2e64 */ #include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> using…
题目大意:找出至少出现K次的子串的最长长度. 题目分析:二分枚举长度x,判断有没有最长公共前缀不小于x的并且连续出现了至少k次的有序子串区间. 代码如下: # include<iostream> # include<cstdio> # include<map> # include<vector> # include<cstring> # include<algorithm> using namespace std; # define…
[题目链接] http://poj.org/problem?id=3261 [题意] 至少出现k次的可重叠最长子串. [思路] 二分长度+划分height,然后判断是否存在一组的数目不小于k即可. 需要注意的是:用末尾添0的方法解决n==1时的RE问题,但是在can中需要忽略height[0]且考虑height[1..n]. [代码] #include<cstdio> #include<cstring> #include<iostream> #define FOR(a,…
                                                                    Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 13072   Accepted: 5812 Case Time Limit: 2000MS Description Farmer John has noticed that the quality of milk…
题目:Milk Patterns #include <stdio.h> #include <string.h> #define N 1000010 int wa[N],wb[N],wv[N],ws[N]; int rank[N],height[N]; int sa[N],r[N]; int abs(int x) { return x<0? -x:x; } int cmp(int *r,int a,int b,int l) { return r[a]==r[b]&&am…
题目链接:http://poj.org/problem?id=3261 思路: 后缀数组的很好的一道入门题目 先利用模板求出sa数组和height数组 然后二分答案(即对于可能出现的重复长度进行二分) ,二分的时候,对 height进行分组,看是否存在一组height值使得其重复的次数大于等于k 代码如下: #include<iostream> #include<cstdlib> #include<cstdio> #include<cstring> usin…
Milk Patterns Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9274   Accepted: 4173 Case Time Limit: 2000MS Description Farmer John has noticed that the quality of milk given by his cows varies from day to day. On further investigation,…
题面 vjudge Sol 二分答案+分组,判断有没有一个组的后缀个数不小于 k 做法 # include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a, b) memset(a, b, sizeof(a)) using namespace std; typedef long long ll; const int _(20010); IL ll Read(){ RG char c = getcha…