Ural 1306. Sequence Median
2013-08-01 22:01
197 查看
求一个数列的中位数,最多有250000个数。
看了discuss才知道用优先队列,先压栈N/2+1个然后边压栈边弹栈。
N为奇数就是栈里的弹一个,N为偶数就从栈里弹两个。
看了discuss才知道用优先队列,先压栈N/2+1个然后边压栈边弹栈。
N为奇数就是栈里的弹一个,N为偶数就从栈里弹两个。
#include<iostream> #include<cstdio> #include<algorithm> #include<queue> using namespace std; priority_queue<unsigned int> que; int main() { //freopen("in","r",stdin); int n; unsigned int u; unsigned int ans; scanf("%d",&n); for(int i=0;i<=n/2;i++) { scanf("%u",&u); que.push(u); } for(int i=n/2+1;i<n;i++) { scanf("%u",&u); que.push(u); que.pop(); } if(n%2) { ans=que.top(); printf("%u\n",ans); } else { ans=que.top(); que.pop(); unsigned int tem=que.top(); printf("%u",(tem+ans)/2); if((tem+ans)%2) printf(".5"); printf("\n"); } return 0; }
相关文章推荐
- ural 1306. Sequence Median
- URAL 1306. Sequence Median
- ural 1306. Sequence Median(优先级队列 priority_queue用法)
- ural 1306. Sequence Median(优先队列)
- ural 1306 Sequence Median
- Ural 1306 Sequence Median
- ural 1306. Sequence Median
- URAL 1306-Sequence Median(堆)
- ural 1306. Sequence Median
- ural 1306. Sequence Median(优先级队列 priority_queue用法)
- Ural_1306. Sequence Median(堆)
- URAL 1306. Sequence Median(优先队列)
- Ural 1306. Sequence Median
- URAL 1306 - Sequence Median 小内存求中位数
- ural 1306【priority_queue+堆查找中间值】
- ural 1306(堆-优先级序列)
- ural 1306 堆排序找中位数
- ural 1306 (heap推排序)
- ural 鹰蛋&51nod 1306
- URAL 1091 Tmutarakan Exams