[Usaco2006 Dec]Milk Patterns

已经下载了WSL2但Docker依然显示版本过旧无法使用,如何解决? 🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀! 阅读详情

Description

农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天
产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。
John的牛奶按质量可以被赋予一个0到1000000之间的数。并且John记录了N(1<=N<=20000)天的
牛奶质量值。他想知道最长的出现了至少K(2<=K<=N)次的模式的长度。
比如1 2 3 2 3 2 3 1 中 2 3 2 3出现了两次。当K=2时,这个长度为4。

Input

* Line 1: 两个整数 N,K。
* Lines 2..N+1: 每行一个整数表示当天的质量值。

Output

* Line 1: 一个整数:N天中最长的出现了至少K次的模式的长度

Sample Input

8 2
1
2
3
2
3
2
3
1



Sample Output

4

思路:和上一题一样,求最长可重叠的重复子串,但多了一个限制,要至少出现k次。二分,按height分组后统计是否有一个组的后缀个数大于k,如果有,那么就表明这一组的公共前缀在原字符串里出现了k次以上,那么就符合要求,return true;
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxl=40010;
int sa[maxl],tsa[maxl],rank[maxl],trank[maxl],sum[1000010],n,s[maxl],k,ans,h[maxl];

void sorts(int j){
	memset(sum,0,sizeof(sum));
	for (int i=1;i<=n;i++) sum[rank[i+j]]++;
	for (int i=1;i<=n;i++) sum[i]+=sum[i-1];
	for (int i=n;i;i--) tsa[sum[rank[i+j]]--]=i;
	
	memset(sum,0,sizeof(sum));
	for (int i=1;i<=n;i++) sum[rank[tsa[i]]]++;
	for (int i=1;i<=n;i++) sum[i]+=sum[i-1];
	for (int i=n;i;i--) sa[sum[rank[tsa[i]]]--]=tsa[i]; 
}

void getsa(){
	for (int i=1;i<=n;i++) trank[i]=s[i];
	for (int i=1;i<=n;i++) sum[trank[i]]++;//for (;;);
	for (int i=1;i<=1000000;i++) sum[i]+=sum[i-1];
	for (int i=n;i;i--) sa[sum[trank[i]]--]=i;
	rank[sa[1]]=1;
	for (int i=2,p=1;i<=n;i++){
		if (trank[sa[i]]!=trank[sa[i-1]]) p++;
		rank[sa[i]]=p;
	}
	for (int j=1;j<=n;j*=2){
		sorts(j);
		trank[sa[1]]=1;
		for (int i=2,p=1;i<=n;i++){
			if (rank[sa[i]]!=rank[sa[i-1]]||rank[sa[i]+j]!=rank[sa[i-1]+j]) p++;
			trank[sa[i]]=p;
		}
		memcpy(rank,trank,sizeof(rank));
	}
}

void geth(){
	for (int i=1,j=0;i<=n;i++){
		if (rank[i]==1) continue;
		while (s[i+j]==s[sa[rank[i]-1]+j]) j++;
		h[rank[i]]=j;
		if (j) j--; 
	}
}

bool check(int lim){
	int len=1,maxs=0,mins=100000000;
	for (int i=2;i<=n;i++){
		if (h[i]<lim){maxs=0,mins=100000000,len=0;} 
		maxs=max(maxs,sa[i]);
		mins=min(mins,sa[i]);
		len++;
		if (len>=k) return true;
	}
	return false;
}

int main(){
	scanf("%d%d",&n,&k);
	for (int i=1;i<=n;i++)
		scanf("%d",&s[i]);
	getsa();
	geth();
	int l=1,r=20000,mid=(l+r)>>1;
	while (l<=r){
		if (check(mid)){
			l=mid+1;
			ans=mid;
		}
		else r=mid-1;
		mid=(l+r)>>1;
	}
	printf("%d\n",ans);
	//for (;;);
	return 0;
}


基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备 在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈 阅读详情

相关推荐

c语言国际象棋(easyx图形库)

c语言实现的国际象棋,先放源码,有空再更 所有图形资源均来源于网络,侵删 #include <graphics.h> #include<stdio.h> #include<conio.h> #include<math.h> #include<stdlib.h> #include <time.h> #define HEIGHT 800 #define WIDTH 1100 #define SIZE 100 #define true.

Betelgeuse13的博客 1914

从粒子拖尾到屏幕雨滴:搞懂Unity ParticleSystem的Simulation Space(世界vs本地坐标)避坑指南

本文深入解析Unity ParticleSystem中Simulation Space的核心原理与实战应用,帮助开发者理解世界坐标与本地坐标的本质区别。通过陨石拖尾、雨雪特效等案例,展示如何在不同场景中选择合适的坐标模式,避免常见视觉问题,并提供了UI特效处理与性能优化方案。

weixin_30772105的博客 428

unity中简单全景搭建

全景场景能够直观的展现一部分区域的全貌,在全景场景中我们能360°观看周围的景象,仿佛自身就在这个场景中,在场景的外部,我们能发现场景就是一个密封的球体,我们是处在球体的内部观察周围,在球内部观察四周看到的都是球的内表面,所以我们看到的全景其实就是贴在密封球体内的一张全景图片。接下来要介绍的就是如何在unity中用一个球体来搭建全景场景。

qq_31791999的博客 3637

[USACO06DEC] Milk Patterns G

美妙的Hash

zzb的博客 348

GlobalPlatform Technology Secure Channel Protocol ‘03‘ 标准 - 安全通道协议简介

按照GlobalPlatform Technology Secure Channel Protocol '03' (SCP03)标准,描述了如何利用S-MAC,S-RMAC,S-ENC进行安全通信的过程。

mmmx777的专栏 6091

VN5620硬件接口介绍

VECTOR, VN5620, 诊断

Fecostar的博客 7481

洛谷2852 [USACO06DEC]牛奶模式Milk Patterns(Hash)(二分)(排序)

题目 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。 John的牛奶按质量可以被赋予一个0到1000000之间的数。并且John记录了N(1&lt;=N&lt;=20000)天的牛奶质量值。他想知道最长的出现了至少K(2&lt;=K&lt;=N)次的模式的长度。比如1 2 3 2 3 2...

A_Bright_CH的博客 722

【异常】QClaw客户端安装失败(OpenClaw资源解压出错)问题排查与修复指南: 安装失败:OpenClaw 资源解压出错。 请重新安装或联系支持。

摘要:QClaw客户端安装失败报错"OpenClaw资源解压出错"的主要原因是资源包解压异常,常见于安装包损坏、系统权限不足、安全软件拦截、旧版本残留或系统环境问题。解决方案分三步:1)快速修复:重新下载安装包、管理员权限运行、关闭安全防护;2)深度修复:清理旧版本残留、修复系统组件;3)终极方案:收集日志联系官方支持。建议优先检查安装包完整性并使用纯英文安装路径,80%问题可通过快速修复方案解决。

奶爸的编程之路,也就一周冷个三天 382

bzoj1717[Usaco2006 Dec]Milk Patterns 产奶的模式 (二分+hash)题解①

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 993  Solved: 549 [Submit][Status][Discuss] Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,

lethalboy 1040

Wazuh部署记录

Wazuh是一个免费的开源安全平台,统一了XDR和SIEM功能。它可以保护内部部署、虚拟化、容器化和基于云的环境中的工作负载。Wazuh帮助组织和个人保护其数据资产免受安全威胁。它被全球数千个组织广泛使用,从小型企业到大型企业。443:仪表盘界面访问端口1515:探针连接服务器端口1514:探针回传信息端口以上3个端口必须打开防火墙。

墨痕诉清风的博客 1560

循迹小车控制实验:代码集成与硬件验证

在main.c文件中还需定义上层代码调用的GPIO输入和PWM输出相关函数,其中调用STM32CubeMX生成的HAL库函数。}else{}else{}else{}else{在main.h文件中的USER CODE BEGIN EFP注释代码段中外部声明Get函数和Set函数,使该函数可以被上层代码调用。循迹小车控制实验到本章全部完成。相比于前几章节的实验,本实验复杂程度是最高的。

u013288925的博客 127

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

后缀数组+二分答案+离散化。(上次写的时候看数据小没离散化然后一直WA。。。写了lsj师兄的写法。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define REP(i,s,t) for(...

weixin_30339457的博客 137

FPGA/IC 秋招笔试/面试题总结

文章目录一、FPGA内部资源1. 什么是FPGA2.FPGA内部资源二、同步时钟、同步/异步电路1.同步时钟2.同步/异步电路三、同步复位/异步复位1.同步复位2. 异步复位3. 异步复位同步释放四、同步FIFO/异步FIFO1.同步FIFO2.异步FIFO五、FIFO最小深度计算1.FIFO最小深度2.示例分析六、逻辑电平1.TTL电平标准2.LVTTL电平标准3.CMOS电平标准4.LVCOMS电平标准5.RS2326.RS4857.ECL、PECL、LVPECL8.LVDS9.CML10.GTL11

Crazzy_M的博客 4万+

bzoj 1717 [Usaco2006 Dec]Milk Patterns 产奶的模式

后缀数组+二分答案

我要吃熊猫 463

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

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

后缀数组

Unlimited Code Works 335

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 952  Solved: 519 [Submit][Status][Discuss] Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,

CRZbulabula的博客 936

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[USACO 2006DEC]Milk Patterns(牛奶模式)——后缀数组

题面   POJ3261   洛谷P2852 解析   翻译一下题目要求:给定一个长为n(1≤n≤20000)的字符串,求其最长的至少出现了k次的可重叠子串长度。   答案显然具有二分性,如果长为$l$的串至少出现了k次,那么长为$l-1$的串也至少出现了k次,那么此题显然可以二分答案,那么如何check?   子串即是原串所有后缀的前缀,至少出现了k次,即是该串至少为k个...

weixin_30532973的博客 211

BZOJ1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1064  Solved: 580 [Submit][Status][Discuss] 题解: 后缀数组求出来Height数组,然后求出相邻的K个串的LCP即可,不需要让串的长度大于K,因为等于K一定比大于

Oakley 891

bzoj1717: [Usaco2006 Dec]Milk Patterns 产奶的模式[后缀数组]题解②

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1011  Solved: 558 [Submit][Status][Discuss] Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量

lethalboy 409

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

【BZOJ1717】[Usaco2006 Dec]Milk Patterns Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠。我们称之为一个“模式”。 John的牛奶按质量可以被赋予一个0到1000000之间的数。并且John记录了N(1<=N<=20000)天的牛奶质量...

weixin_30892763的博客 363

【bzoj1717】[Usaco2006 Dec]Milk Patterns 产奶的模式

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1341  Solved: 726 [Submit][Status][Discuss] Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量

Joky_2002的博客 338

BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 二分答案 哈希/后缀数组

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1265  Solved: 682 [Submit][Status][Discuss] Description 农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量

BlackJack 960

bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式

题目链接 bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式 题解 后缀排序 求出height之后一段区间[l,r]内,出现r-l+1次最长的串是\(min(height[i]) l<=i<=r\) 单调队列维护 代码 // luogu-judger-enable-o2 #include<cstdio> #include&l...

agtvo48266的专栏 243

bzoj 1717: [Usaco2006 Dec] Milk Patterns

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1717 可以说是后缀数组模板题吧,求出height[]后用一个单调队列维护最近的k-1个height中的最小值,找出其中的最大的即可。(为什么那么多人都用二分而不用单调队列呢?) #include #include #include #include #def

greatwall1995的专栏 871
上一篇: 最长可重叠的重复子串
下一篇: pku1734 Musical Theme
thy_asdf
博客等级 码龄12年 16粉丝 186原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值