当前位置: 首页 > news >正文

AcWing 134:双端队列

【题目来源】
https://www.acwing.com/problem/content/description/136/

【题目描述】
达达现在碰到了一个棘手的问题,有 N 个整数需要排序。
达达手头能用的工具就是若干个双端队列。
她从 1 到 N 需要依次处理这 N 个数,对于每个数,达达能做以下两件事:
1. 新建一个双端队列,并将当前数作为这个队列中的唯一的数;
2. 将当前数放入已有的队列的头之前或者尾之后。
对所有的数处理完成之后,达达将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。
请你求出最少需要多少个双端序列。

【输入格式】
第一行输入整数 N,代表整数的个数。
接下来 N 行,每行包括一个整数 Di,代表所需处理的整数。

【输出格式】
输出一个整数,代表最少需要的双端队列数。

【数据范围】
1≤N≤200000

【输入样例】
6
3
6
0
9
6
3

【输出样例】
2

【算法代码】

#include <bits/stdc++.h>
using namespace std;const int N=2e5+5;
typedef pair<int,int> PII;
PII a[N];
int n;int main() {cin>>n;for(int i=0; i<n; i++) {cin>>a[i].first;a[i].second=i;}sort(a,a+n);int i=0,last=n+1,ans=1;int dir=-1; //dir is used to record directionswhile(i<n) {int j=i+1;while(j<n && a[j].first==a[i].first) {j++;}int minx=a[i].second;int maxx=a[j-1].second;if(dir==-1) { //dir=-1 indicates declineif(last>maxx) last=minx;else {dir=1; //dir=1 indicates increaselast=maxx;}} else {if(last<minx) last=maxx;else {ans++;last=minx;dir=-1;}}i=j;}cout<<ans<<endl;return 0;
}/*
in:
6
3
6
0
9
6
3out:
2
*/





【参考文献】
https://www.cnblogs.com/Horb7/p/15603051.html
https://www.acwing.com/solution/acwing/content/7210/
https://www.acwing.com/solution/content/27971/












 

相关文章:

AcWing 134:双端队列

【题目来源】https://www.acwing.com/problem/content/description/136/【题目描述】 达达现在碰到了一个棘手的问题&#xff0c;有 N 个整数需要排序。 达达手头能用的工具就是若干个双端队列。 她从 1 到 N 需要依次处理这 N 个数&#xff0c;对于每个数&#xff0c;达达能做…...

Spring Cloud Gateway 重写 URL

目录 1、简介 2、Spring Cloud Gateway 快速回顾 3、基于配置的 URL 重写 4、基于 DSL 的 URL 重写 5、测试 6、总结 1、简介 Spring Cloud Gateway 的常见用例是作为一个网关&#xff0c;代理一个或多个服务&#xff0c;从而为客户端提供更简单的消费方式。 本文将带你…...

【C语法学习】10 - scanf()函数

文章目录 0 前言1 函数原型2 参数2.1 格式字符串2.1.1 转换说明 2.2 参数列表 3 返回值4 读取机制4.1 基本概念4.2 转换说明4.3 读取过程4.4 读取示例4.5 多参数 6 示例6.1 示例16.2 示例26.3 示例36.4 示例4 0 前言 scanf()函数虽然使用起来较为灵活&#xff0c;但是其读取机…...

ffmpeg mp3截取命令,视频与mp3合成带音频视频命令

从00:00:03.500开始截取往后长度到结尾的mp3音频&#xff08;这个更有用&#xff0c;测试好用&#xff09; ffmpeg -i d:/c.mp3 -ss 00:00:03.500 d:/output.mp3 将两个音频合并成一个音频&#xff08;测试好用&#xff09; ffmpeg -i "concat:d:/c.mp3|d:/output.mp3&…...

文件夹还在,里面文件没了?问题这样解决

文件夹还在但文件无故消失怎么办&#xff1f;文件的消失对于我们来说可能是个令人沮丧且困惑的问题。有时候&#xff0c;我们可能会发现文件夹依然存在&#xff0c;但其中的文件却消失了。在这篇文章中&#xff0c;我们将探讨为什么电脑文件会无故消失的原因&#xff0c;并提供…...

使用 OpenCV 和 Tesseract OCR 进行车牌识别

您将了解自动车牌识别。我们将使用 Tesseract OCR 光学字符识别引擎(OCR 引擎)来自动识别车辆牌照中的文本。 Python-tesseract: Py-tesseract 是 Python 的光学字符识别 (OCR) 工具。也就是说,它将识别并“读取”图像中嵌入的文本。Python-tesseract 是 Google 的 Tessera…...

What exactly are the practices involved in DevOps?

目录 1. Continuous Integration (CI) 2. Continuous Deployment (CD) 3. Infrastructure as Code (IAC) 4. Configuration Management 5. Monitoring and Logging 6. Automated Testing 7. Collaboration and Communication 8. Microservices Architecture 9. Conta…...

Spring底层原理(五)

Spring底层原理(五) 本章内容 介绍Aware接口与InitializingBean接口、Bean的初始化与销毁、Scope Aware接口 作用:用于注入一些与容器相关的信息 类名作用BeanNameAware注入Bean的名称BeanFactoryAware注入BeanFactory容器ApplicationContextAware注入ApplicationContext容…...

算法的基本概念(数据结构与算法)

数据结构是指数据元素之间的关系和组织方式&#xff0c;在计算机科学中被广泛应用于存储和操作数据的方法和技术。 数据元素&#xff1a; 数据元素是构成数据的基本单位&#xff0c;可以是数字、字符、记录等。 数据项&#xff1a; 数据元素中的一个部分&#xff0c;表示一个属…...

高阶数据结构学习——LRU Cache

文章目录 1、了解LRU Cache&#xff08;Least Recently Used缩写&#xff09;2、代码实现 1、了解LRU Cache&#xff08;Least Recently Used缩写&#xff09; Cache是缓存&#xff0c;在磁盘和内存之间&#xff0c;内存和寄存器之间都存在&#xff0c;CPU和内存之间存在三级缓…...

代码冲突解决

远程仓库修改 本地代码修改 接下来我们push一下 如果使用IDE 冲突内容如下&#xff1a; 我们可以使用自带的工具进行修改 我们选择接受自己改动的即可 如果使用git工具怎么去处理呢 远程分支是这样 本地是这样的 add和commit之后&#xff0c;再pull&#xff0c;最后pus…...

c/c++程序的内存开辟时 的内存情况

我们写的代码都是要存放在内存空间中的&#xff0c;我们经常说堆区&#xff0c;静态区&#xff0c;还有栈区&#xff0c;相信很多人不是很明白&#xff0c;在今天这篇博客中让大家对它们有一个粗略的认识 1.栈区&#xff08;static&#xff09; 在执行函数时&#xff0c;函数内…...

【linux常用命令+vi编辑器_2023.11.3】

芯片开发 Linux/Unix&#xff08;环境&#xff09; EDA工具TCL&#xff08;波形&#xff09; SVN/GIT&#xff08;版本控制&#xff09; Makefile&#xff08;脚本语言&#xff09; Perl/Python&#xff08;脚本语言&#xff09; Vim/Gvim&#xff08;编辑器&#xff09; 命令…...

okhttp post请求 header post参数加密遇到的两个问题

如果你对于网络请求用了https后是否还有必要对参数加密有疑问可以看我上篇的文章&#xff1a;网络安全https 记得耐心看完&#xff0c;下面说问题&#xff1a; Caused by: java.lang.IllegalArgumentException: Unexpected char 0x0a 一开始以为是okhttp框架对特殊字符做了现在…...

什么是Webpack的loader和plugin?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...

ESXi for ARM 最新下载地址

由于VMware决定关闭 flings.vmware.com 网站&#xff0c;内容被迁移到不同的地方&#xff0c;网站跳转到 Code Samples and PowerCLI Example Scripts | VMware - VMware {code} ESXi for ARM的下载地址迁移到了 https://customerconnect.vmware.com/downloads/get-download?…...

2. 网络之网络编程

网络编程 文章目录 网络编程1. UDP1.1 DatagramSocket1.1.1 DatagramSocket 构造方法1.1.2 DatagramSocket 方法&#xff1a; 1.2 DatagramPacket1.2.1 DatagramPacket构造方法1.2.2 DaragramPacket方法1.2.3InetSocketAddress API 1.3 UDP回显服务器1.3.1 框架结构1.3.2 读取请…...

工作数字化的中国历程 | 从 OA 到 BPM 到数字流程自动化

业务流程是由“活动”&#xff08;或称“工作任务”&#xff09;构成的&#xff0c;在企业里的所有工作是不是都叫流程&#xff0c;或者属于流程的一部分&#xff0c;这个概念很绕&#xff0c;我觉得没有必要去做学究气的辨析。我曾经提出过一个从工作的两个特性&#xff08;产…...

6-1 二叉排序树查找操作

description 本题要求实现二叉排序树的查找操作。 函数接口定义&#xff1a; BSTree SearchBST(BSTree T,ElemType e); 其中BSTree结构定义如下&#xff1a; typedef int ElemType; typedef struct BSTNode { ElemType data; struct BSTNode *lchild,*rchild; }BSTNode,*BS…...

服务上千家企业,矩阵通2.0重磅上线,全链路管理新媒体矩阵

自上线以来 矩阵通已服务了上千家企业级客户 覆盖汽车、家居、媒体、金融、教育等多个行业 矩阵通1.0时代 我们以“数据”为基座打造出10功能 帮助企业轻松管理新媒体矩阵 实现账号管理、数据分析、竞对监测、 人员考核、风险监管等需求 而现在 矩阵通2.0重磅上线 新增…...

FRED应用:背散射教程

这个教程描述一个有散射性质的简单plano-plano透镜&#xff0c;这样一条入射光就会散射回发射方向。教程首先&#xff0c;在FRED中创建一个新的系统&#xff0c;在树视图中的Geometry上右击&#xff0c;选择“Create New Lens…”并在出现的对话框上点OK按钮&#xff0c;在全局…...

关键字[Static]

一、static 的三种用法 1. 静态局部变量 * 特性: * - 只初始化一次(程序启动时) * - 函数返回后值保留(不销毁) * - 下次调用时保持上次的值 * - 存储在静态区,不在栈上 2. 静态全局变量(文件作用域限制) 仅在 xx.c 内可见,其他文件无法访问 3. 静态函数(文件作用域限…...

从项目实战出发:如何用AVL Cruise 2019与MATLAB/Simulink完成一个完整的DLL联合仿真流程?

从项目实战出发&#xff1a;如何用AVL Cruise 2019与MATLAB/Simulink完成一个完整的DLL联合仿真流程&#xff1f; 在汽车工程领域&#xff0c;系统级仿真已成为开发流程中不可或缺的一环。当我们需要评估整车动力系统性能时&#xff0c;AVL Cruise作为专业车辆仿真软件&#xf…...

Claude Code 2026 路线图深度拆解:5 大新增能力与企业级项目落地时间表

1. 5 大新增能力不是“功能列表”,而是上下文治理的5个切口 大多数人看到「Claude Code 2026 路线图」的第一反应,是去官网截图那张带箭头和时间轴的PPT——然后立刻开始评估“哪个功能我团队下周就能用上”。我试过。去年Q4我们团队在三个项目里并行接入了路线图中已发布的…...

嵌入式C语言单元测试实战:Unity框架入门与工程实践

1. 项目概述&#xff1a;为什么嵌入式开发也需要单元测试&#xff1f;在嵌入式开发领域&#xff0c;尤其是使用C语言进行单片机、RTOS或裸机程序开发时&#xff0c;我们常常陷入一种“烧录-看灯-调串口”的循环。代码逻辑稍微复杂一点&#xff0c;比如一个状态机或者一个协议解…...

【最新v2.7.5 版本安装包】OpenClaw 2.7.5 保姆级教程,零基础无需命令一键部署不踩坑

&#x1f680; OpenClaw 一键安装包&#xff5c;一键部署甩掉复杂环境配置 【点击下载最新安装包】https://xiake.yun/api/download/package/16?promoCodeIVBE1F235167 &#x1f4cc; 适配信息 适配系统&#xff1a;Windows10/11 64 位 当前版本&#xff1a;v2.7.5&#xff…...

从无人机炸机到平稳飞行:IMU椭球拟合校准实战避坑指南

从无人机炸机到平稳飞行&#xff1a;IMU椭球拟合校准实战避坑指南 去年夏天&#xff0c;我在郊外测试一台自组装的四轴无人机时&#xff0c;经历了惊心动魄的一幕——起飞不到30秒&#xff0c;飞行器突然失控翻滚&#xff0c;最终坠毁在草地上。拆解排查后发现&#xff0c;问题…...

用Python搞定常微分方程:从经典RK4到隐式IRK6的保姆级代码对比(附避坑指南)

Python数值解微分方程实战&#xff1a;从RK4到IRK6的算法选择与避坑指南 微分方程数值解法是工程计算中的核心技能&#xff0c;但面对十几种龙格库塔方法时&#xff0c;很多开发者会陷入选择困难。本文将用可复用的Python代码&#xff0c;带你穿透显式RK4与隐式IRK6的迷雾。 1.…...

SpringBoot3 + JDK17 项目实战:用MyBatis-Plus和Redis快速搭建一个用户管理系统

SpringBoot3 JDK17 实战&#xff1a;构建高性能用户管理系统 最近在重构公司内部的管理系统时&#xff0c;我选择了SpringBoot3和JDK17这套组合。新版本带来的性能提升和语法糖让开发效率提高了不少&#xff0c;特别是记录日志和编写Lambda表达式时。本文将带你从零开始&#…...

从电路哲学到工程实践:无源与有源器件设计心法全解析

1. 从“人生如电路”到“玩电路设计&#xff0c;也可以这样有情怀”看到“人生如电路”这个比喻&#xff0c;很多电子爱好者或工程师都会心一笑。它把抽象的电子元件特性&#xff0c;巧妙地映射到我们每个人的学习、工作和生活状态上&#xff0c;确实挺有道理&#xff0c;也很有…...