【华为OD机试 2023最新 】最小调整顺序次数、特异性双端队列(C++ 100%)
2023-09-14 09:06:45 时间
题目描述
有一个特异性的双端队列,该队列可以从头部或尾部添加数据,但是只能从头部移出数据。
小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据(可能从头部添加、也可能从尾部添加),依次添加1到n;n个指令是移出数据。
现在要求移除数据的顺序为1到n。
为了满足最后输出的要求,小A可以在任何时候调整队列中数据的顺序。
请问 小A 最少需要调整几次才能够满足移除数据的顺序正好是1到n;
输入描述
第一行一个数据n,表示数据的范围。
接下来的2n行,其中有n行为添加数据,指令为:
- **“**head add x” 表示从头部添加数据 x,
- **“**tail add x” 表示从尾部添加数据x,
另外 n 行为移出数据指令,指令为:“remove” 的形式,表示移出1个数据;
1 ≤ n ≤ 3 * 10^5。
所有的数据均合法。
输出描述
相关文章
- BM3D 算法原理详细解析 按过程步骤讲解(附C++实现代码)[通俗易懂]
- c++ sstream
- C++解LeetCode225. 用队列实现栈(适合基础薄弱)
- LeetCode142. 环形链表 II(C++俩种解法)
- C++20 读书笔记(1)
- C++stl库_c++库
- c++ 优先级队列_kafka优先级队列
- 在 C++ 中命名 Mangling 和 extern “C”
- C++结构体和类的区别_c++有结构体吗
- c++的链表-C++实现简单链表
- c++stl
- C++ 的一些让人烦的语法小特性
- 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
- 【C++】类和对象 (中篇)
- 【C++】继承
- C++ queue(STL queue)用法详解
- C++中队列的建立与操作详细解析
- c++显式类型转换示例详解
- C++采用ring3读取MBR实例