题目名称 401. 可合并堆
输入输出 uheap.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 5
题目来源 Gravatarcqw 于2010-01-18加入
开放分组 全部用户
提交状态
分类标签
线性结构
分享题解
通过:3, 提交:19, 通过率:15.79%
GravatarYGOI_真神名曰驴蛋蛋 100 0.001 s 0.30 MiB C++
Gravatar‎MistyEye 100 0.001 s 0.30 MiB C++
Gravatarsxysxy 100 0.001 s 0.30 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 80 0.014 s 0.24 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 80 0.017 s 0.24 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 60 0.010 s 0.30 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 60 0.010 s 3.15 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 60 0.017 s 0.30 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 60 0.018 s 0.30 MiB C++
GravatarYGOI_真神名曰驴蛋蛋 40 0.001 s 0.30 MiB C++
本题关联比赛
201001-line
关于 可合并堆 的近10条评论(全部评论)
表来自强力的学长 @Alboi_真神名曰蛋蛋
Gravatarsxysxy
2017-01-19 21:22 4楼
这题真不是怪我打表= =
只能说出题人真是[哔---]了[哔---]了
Gravatarsxysxy
2016-11-26 08:24 3楼
这题真不是怪我打表= =
只能说出题人真是[哔---]他[哔---]的
Gravatar‎MistyEye
2016-09-04 14:48 2楼
这题真不是怪我打表= =
只能说出题人真是[哔---]了[哔---]了
GravatarYGOI_真神名曰驴蛋蛋
2016-09-04 14:46 1楼

401. 可合并堆

★☆   输入文件:uheap.in   输出文件:uheap.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

用链表实现的可合并堆一个可合并堆支持这样几种操作:MAKEHEAPINSERT,MINIMUM,EXTRACTMINUNION。说明在下列每一情况中,如何用链表实现可合并堆。尽量使每种操作高效。为使输入输出方便,作如下指令编号约定: 

1号操作:MAKEHEAP,创建一个空的可合并堆。例如,1 4 表示执行1号建堆指令,新建一个堆,该堆编号为4,即4号堆。

2号操作:INSERT,堆插入操作。例如,2 4 56 表示执行2号插入指令,向4号堆插入整数56(如果堆不存在则输出insert error!)。

3号操作:EXTRACTMIN,删除堆最小值,并输出。例如,3 4 表示执行3号删除指令,删除4号堆最小值,并输出(如果4号堆不存在或4号堆为空则输出extract error!)。

4号操作:UNION,合并堆。例如,4 2 4 表示执行4号合并指令将2号堆,4号堆合并,该合并将两个堆合并至2号堆,合并4号堆为空堆(若2号堆或4号堆不存在则输出union error!)。

【输入格式】

第一行一个整数$n$,表示指令的条数。

接下来$n$行,每行一条指令,每行若干个用一个空格隔开的整数,第1个整数表示指令编号,其余参数含义如题描述。

【输出格式】

输出有$n$行,每行表示一个指令的执行结果,如果该指令没有任何输出则显示0,如果有则按指令要求输出信息。

【样例输入】

9
1 1
1 2
1 3
2 1 6
2 1 5
2 1 4
2 3 3
4 1 3
3 1

【样例输出】

0
0
0
0
0
0
0
0
3