动态规划(算法竞赛、蓝桥杯)--单调队列滑动窗口与连续子序列的最大和

1、B站视频链接:E11【模板】单调队列 滑动窗口最值_哔哩哔哩_bilibili

题目链接:滑动窗口 /【模板】单调队列 - 洛谷

9874de152b584efb8d8667c51789a8aa.png

565efd83af3547d2bc63da9ac9a6a22e.png

#include <bits/stdc++.h> 
using namespace std;
const int N=1000010;
int a[N],q[N];//q存的是元素的下标 

int main(){
	int n,k;
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	
	//维护窗口最小值
	int h=1,t=0;//清空队列且t在h之前
	for(int i=1;i<=n;i++){
		while(h<=t&&a[i]<=a[q[t]])t--;//队尾出队(队列不空且新元素更优
		q[++t]=i;//队尾入队(存储下标 方便判断队头出队)
		if(q[h]<i-k+1)h++;//队头出队滑出了窗口
		if(i>=k)printf("%d ",a[q[h]]);//使用最值 
	} 
	puts("");
	//维护窗口最大值
	h=1,t=0;
	for(int i=1;i<=n;i++){
		while(h<=t&&a[i]>=a[q[t]])t--;
		q[++t]=i;
		if(q[h]<i-k+1)h++;
		if(i>=k)printf("%d ",a[q[h]]);
	}
	return 0;
}

练习题:1、求m区间内的最小值 - 洛谷

2、扫描 - 洛谷    3、 [HAOI2007] 理想的正方形 - 洛谷

2、B站视频链接:E12 单调队列 连续子序列的最大和_哔哩哔哩_bilibili

d1e54a9dc4f2493bb6617aab8068860d.png

8a16c72e1a06434cb4862e5fda26f48c.png

0f2c5f0b829348649420e6318b1aa98d.png

#include <bits/stdc++.h> 
using namespace std;
const int N=300010;
int n,m;
int s[N],f[N],q[N];

int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++){
		scanf("%d",&s[i]),s[i]+=s[i-1];//前缀和 
	}
	int h=1,t=0;//清空队列
	for(int i=1;i<=n;i++){//枚举序列 
		while(h<=t&&s[i-1]<=s[q[t]])t--;//队尾出队(队尾不空且更优)		 
		q[++t]=i-1;//队尾入队,存储下标
		if(q[h]<i-m)h++;//队头出队滑出窗口
		f[i]=s[i]-s[q[h]]; 
	}
	int res=-2e9;
	for(int i=1;i<=n;i++){
		res=max(res,f[i]);
	} 
	printf("%d\n",res);
	return 0;
}

196d0066247e4e1d9b9a69430cdb1215.png

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/419951.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构题目①——数组

前言 本篇文章为博主进行代码随想录——数组练习后的总结会涉及到每一道题目的详细的思路整理&#xff0c;以及本人的易错点&#xff0c;希望对大家有所帮助 数组介绍&#xff1a; 数组在C语言中就已经有所涉及&#xff0c;它是一个最基础的数据结构&#xff0c;而在数据结构中…

从零学算法289

289.根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a; 1 即为 活细胞 …

接上Promise()对象处理回调地狱:怎么用.then()?什么是Async、Await?

上一篇基于JavaScript基础的异步、同步操作&#xff0c;promise、.then()-CSDN博客讲了【啥是异步操作、同步操作&#xff1f;】然后简单讲了回调函数是啥、Promise()对象是啥、.then()函数是啥&#xff0c;这一篇讲讲promise()对象到底怎么配合.then()函数解决回调地狱&#x…

学习和工作的投入产出比(节选)

人工智能统领全文 推荐包含关于投入、产出、过剩、市场关注、案例、结果和避雷等主题的信息&#xff1a; 投入与产出&#xff1a; 投入和产出都有直接和间接两类常见形式。常见的四种组合是&#xff1a;直接投入、直接产出、间接投入、间接产出。 过剩&#xff1a; 过剩是一个重…

QtCreator报Failed to parse qmlimportscanner output解决

错误如下: 定位错误位置 增加错误信息打印 打印执行命令 执行打印输出的命令,成功返回JSON 但输出的JSON对象不是json格式,而是命令 增加$$成功输出JSON 使用QtCreator12编译一次后,再使用QtCreator13成功编译通过,问题解决

如何实现WordPress后台显示文章、分类目录、标签等的ID?

我们平时在使用WordPress的过程中&#xff0c;偶尔需要用到文章的ID&#xff0c;或分类目录ID&#xff0c;或标签ID&#xff0c;或媒体库ID&#xff0c;或评论ID&#xff0c;或用户ID等&#xff0c;但是WordPress后台默认是不显示它们的ID的。 今天boke112百科就跟大家分享如何…

刷题第3天(简单题):LeetCode203--移除链表元素--虚拟头结点

LeetCode203:给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,6,3,4,5,6], val 6 输出&#xff1a;[1,2,3,4,5]示例 2&#xff1a;输入…

vue3中的ref和reactive的区别

vue3中的ref和reactive的区别 1、响应式数据2、ref3、reactive4、ref VS reactive5、往期回顾总结&#xff1a; 1、响应式数据 处理响应式数据时到底是该用ref还是reactive... 响应式数据是指在 Vue.js 中&#xff0c;当数据发生变化时&#xff0c;相关的视图会自动更新以反映…

纯css实现-让字符串在文字少时显示为居中对齐,而在文字多时显示为左对齐

纯css实现-让字符串在文字少时显示为居中对齐&#xff0c;而在文字多时显示为左对齐 使用flex实现 思路 容器样式&#xff08;.container&#xff09;: Flex容器的BFC性质使得其内部的子元素&#xff08;.text-box&#xff09;在水平方向上能够居中&#xff0c;通过justify-c…

用node写后端环境运行时报错Port 3000 is already in use

解决方法:关闭之前运行的3000端口,操作如下 1.WindowR输入cmd确定,打开命令面板 2.查看本机端口详情 netstat -ano|findstr "3000" 3.清除3000端口 taskkill -pid 41640 -f 最后再重新npm start即可,这里要看你自己项目中package.joson的启动命令是什…

简单版 git快速上手使用 clone项目 新建/切换分支 提交修改

Git是一个广泛使用的版本控制系统&#xff0c;允许多个用户跟踪文件的更改&#xff0c;并协作开发项目。 首先确定自己电脑已经安装了git&#xff0c;具体安装步骤请查找教程&#xff0c;应该不难。 以windows电脑为例&#xff0c;安装完后在搜索栏搜索git会出现 先解释一下这…

B端系统用户体验最高原则:美观与易用的结合,附大波案例

将美观与易用结合是B端系统用户体验的最高原则&#xff0c; 强调美观忽视易用&#xff0c;那是反人类设计&#xff1b;强调易用忽视美观&#xff0c;那是泯灭人性的设计。本文分享为什么系统要结合二者&#xff0c;欢迎关注点赞&#xff0c;如有需求&#xff0c;可以私信我们。…

租床小程序|租床系统|租赁软件开发功能

随着移动互联网的普及&#xff0c;越来越多的人开始选择在线上完成各种租赁业务&#xff0c;而医院租床也不例外。在这个趋势下&#xff0c;开发一款租赁小程序成为了市场的必然需求。 租床小程序的功能 1、搜索与筛选 为了满足不同用户的需求&#xff0c;小程序应该提供设备…

3/1作业

1.用fwrite和fread将任意bmp图片&#xff0c;修改成德国的国旗 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> int main(int argc, const char *argv[]) { FILE* fp fopen("1.bmp","r")…

Timeplus-proton流处理器调研

概念 Timeplus是一个流处理器。它提供强大的端到端功能&#xff0c;利用开源流引擎Proton来帮助数据团队快速直观地处理流数据和历史数据&#xff0c;可供各种规模和行业的组织使用。它使数据工程师和平台工程师能够使用 SQL 释放流数据价值。 Timeplus 控制台可以轻松连接到不…

Javaweb之SpringBootWeb案例之 Bean管理的Bean作用域详细的解析

2.2 Bean作用域 在前面我们提到的IOC容器当中&#xff0c;默认bean对象是单例模式(只有一个实例对象)。那么如何设置bean对象为非单例呢&#xff1f;需要设置bean的作用域。 在Spring中支持五种作用域&#xff0c;后三种在web环境才生效&#xff1a; 作用域说明singleton容器…

使用Docker搭建一款实用的个人IT工具箱——It-Tools

作为程序员&#xff0c;在日常工作中&#xff0c;需要借助一些工具来提高我们工作效率&#xff0c;IT-Tools是为开发人员度身打造的一套便捷在线工具。它提供全面功能&#xff0c;使开发者能以更高效方式完成任务。经由IT-Tools&#xff0c;开发人员能轻松应对各类技术挑战&…

yolov9 tensorRT 的 C++ 部署

yolov9 tensorRT C 部署 本示例中&#xff0c;包含完整的代码、模型、测试图片、测试结果。 完整的代码、模型、测试图片、测试结果【github参考链接】 TensorRT版本&#xff1a;TensorRT-7.1.3.4 导出onnx模型 导出适配本实例的onnx模型参考【yolov9 瑞芯微芯片rknn部署、地平…

Consul服务注册与发现 Consul配置步骤

Consul服务注册与发现 Consul配置步骤 consul下载地址 Install | Consul | HashiCorp Developer 启动需要在 下载好的文件夹里 用cmd 运行consul agent -dev启动consul Consul配置 配置pom <!--SpringCloud consul config--> <dependency><groupId>org…

基于JSON的Ollama和LangChain agent

到目前为止&#xff0c;我们都可能意识到&#xff0c;通过为LLMs提供额外的工具&#xff0c;我们可以显著增强它们的功能。 例如&#xff0c;即使是ChatGPT在付费版本中也可以直接使用Bing搜索和Python解释器。OpenAI更进一步&#xff0c;为工具使用提供了经过优化的LLM模型&am…