
堆
YAOSHIAO
这个作者很懒,什么都没留下…
展开
-
AcWing 839. 模拟堆(C++算法)
AcWing 839. 模拟堆 1、题目: 维护一个集合,初始时集合为空,支持如下几种操作: “I x”,插入一个数x; “PM”,输出当前集合中的最小值; “DM”,删除当前集合中的最小值(数据保证此时的最小值唯一); “D k”,删除第k个插入的数; “C k x”,修改第k个插入的数,将其变为x; 现在要进行N次操作,对于所有第2个操作,输出当前集合的最小值。 输入格式 第一行包含整数N。 接下来N行,每行包含一个操作指令,操作指令为”I x”,”PM”,”DM”,”D k”或”C k x”中的一种。原创 2020-09-05 15:49:15 · 202 阅读 · 0 评论 -
AcWing 838. 堆排序(C++算法)
AcWing 838. 堆排序 1、题目: 输入一个长度为n的整数数列,从小到大输出前m小的数。 输入格式 第一行包含整数n和m。 第二行包含n个整数,表示整数数列。 输出格式 共一行,包含m个整数,表示整数数列中前m小的数。 数据范围 1≤m≤n≤105, 1≤数列中元素≤109 输入样例: 5 3 4 5 1 3 2 输出样例: 1 2 3 2、基本思想: 小根堆,看成一个完全二叉树,将一个数与它的左右子节点相比较,大数下沉。 3、步骤: ①插入一个数 heap[++size] = x; down(s原创 2020-08-26 22:06:48 · 224 阅读 · 0 评论