双堆解法 类似于双堆求中位数 把前k小的数放进大根堆,大根堆的堆顶恰好就是第k小的数 剩下的数放进小根堆里 如果要插入一个x 如果x比大根堆堆顶大,就扔进小根堆不管它了 如果x比大根堆堆顶小,取出大根堆堆顶,把堆顶那个数放进小根堆,再把x放入大根堆 查找的时候,大根堆如果size是k,那么大根堆堆顶就是答案 下面是AC代码 #include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using i128 = __int128; int ma...