P1168 中位数 堆
题目描述 给出一个长度为 N N的非负整数序列 A_i A i ,对于所有 1 ≤ k ≤ (N + 1) / 2 1 ≤ k ≤ ( N + 1 ) / 2,输出 A_1, A_3, …, A_{2k - 1} A 1 , A 3 , … , A 2 k − 1 的中位数。即前 1,3,5,… 1 , 3 , 5 , …个数的中位数。 输入格式 第 1 1行为一个正整数 N N,表示了序列长度。 第 2 2行包含 N N个非负整数 A_i (A_i ≤ 10^9) A i ( A i ≤ 1 0 9 )。 输出格式 共 (N + 1) / 2 ( N + 1 ) / 2行,第 i i行为 A_1, A_3, …, A_{2k - 1} A 1 , A 3 , … , A 2 k − 1 的中位数。 本题要用到优先队列定义堆: such as: priority_queue<int,vetor<int>,greater<int> >p1;——小根堆(扔进去的数据自动排为由小到大) priority_queue<int,vector<int>,less<int> >p2; ——大根堆(扔进去的数据自动排为由大到小) 堆顶堆: 代码(愿以后的我能看懂): 1 #include<bits/stdc++.h> 2 using