传送门
题目大意
有一些ADD和GET操作。n次ADD操作,每次往序列中加入一个数,由ADD操作可知序列长度为1-n时序列的组成。GET操作输入一个序列长度,输出当前长度序列第i大的元素的值。i初始为0,每次GET操作i先加1。给出的GET操作输入非降。
思路
对顶堆
大根堆维护小于当前需询问的节点的值
小根堆维护大于当前需询问的节点的值
那么大根堆的size等于当前询问的节点时,大根堆的堆顶就是答案。
代码
有一些ADD和GET操作。n次ADD操作,每次往序列中加入一个数,由ADD操作可知序列长度为1-n时序列的组成。GET操作输入一个序列长度,输出当前长度序列第i大的元素的值。i初始为0,每次GET操作i先加1。给出的GET操作输入非降。
对顶堆
大根堆维护小于当前需询问的节点的值
小根堆维护大于当前需询问的节点的值
那么大根堆的size等于当前询问的节点时,大根堆的堆顶就是答案。
传送门将前i-1小放在第一个小根堆(大的在上)后面的放在第二个大根堆(小的在上) , 每次插入到
历经磨难终于解决了这题,原来用stl可以这么简单~这题的思路:用stl弄2个优先队列,big队列优先弹出最
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M