UVA 501 Black Box
输入n个数,然后是m次操作,第i个操作k是要求输出前k个数中第i大的数的值。两个优先队列,可以理解为把前k个数由小到大排序,从第i个数后断开,第一段的最后一个就是所求啦。不妨把第一段反过来,用最大堆来存储,这样顶即为所求。每个询问操作都要先把第二段的第一个(最小值,用最小堆存储)压入第一段中,之后再判断第二段的最小值是否比第一段的最大值小(是否符合不降序),小就交换。#include#i