A2312 | 删除物品
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
箱子再分配问题需要解决如下问题:
1. 一共有 $N$ 个物品,堆成 $M$ 堆。
2. 所有物品都是一样的,但是它们有不同的优先级。
3. 你只能够移动某堆中位于顶端的物品。
4. 你可以把任意一堆中位于顶端的物品移动到其它某堆的顶端。若此物品是当前所有物品中优先级最高的,可以直接将之删除而不用移动。
5. 求出将所有物品删除所需的最小步数。删除操作不计入步数之中。
6. 这是一个比较难解决的问题,这里你只需要解决一个比较简单的版本:不会有两个物品有着相同的优先级,且 $M=2$。
1. 一共有 $N$ 个物品,堆成 $M$ 堆。
2. 所有物品都是一样的,但是它们有不同的优先级。
3. 你只能够移动某堆中位于顶端的物品。
4. 你可以把任意一堆中位于顶端的物品移动到其它某堆的顶端。若此物品是当前所有物品中优先级最高的,可以直接将之删除而不用移动。
5. 求出将所有物品删除所需的最小步数。删除操作不计入步数之中。
6. 这是一个比较难解决的问题,这里你只需要解决一个比较简单的版本:不会有两个物品有着相同的优先级,且 $M=2$。
输入格式
第一行是包含两个整数 $N_1$, $N_2$ 分别表示两堆物品的个数。接下来有 $N_1$ 行整数按照从顶到底的顺序分别给出了第一堆物品中的优先级,数字越大,优先级越高。再接下来的 $N_2$ 行按照同样的格式给出了第二堆物品的优先级。
输出格式
对于每个数据,请输出一个整数,即最小移动步数。
输入输出样例
输入 #1
3 3 1 4 5 2 7 3
输出 #1
6
$1\leq N_1+N_2\leq 100000$
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?