ural 1306【priority_queue+堆查找中间值】
来源:互联网 发布:数据异常怎么回事 编辑:程序博客网 时间:2024/06/06 14:05
http://acm.timus.ru/problem.aspx?space=1&num=1306—— 一道不错的“水题”
一开始用sort快排,结果到了test就MLE了。。。后来看了别人才知道可以用堆来做,今晚也花了整整一晚去研究用堆实现的priority_queue优先队列,不过总是想不明白为啥默认的是<重载会按大到小来输出,或许是因为小的数位于堆这棵二叉树的儿子位置,而大的就是root。。。
#include <vector>#include <list>#include <map>#include <set>#include <queue>#include <string.h>#include <deque>#include <stack>#include <bitset>#include <algorithm>#include <functional>#include <numeric>#include <utility>#include <sstream>#include <iostream>#include <iomanip>#include <cstdio>#include <cmath>#include <cstdlib>#include <limits.h>using namespace std;#define LL long long#define pi acos(-1)#define N 250010#define INF INT_MAX#define eps 1e-8//*********************************************//ural 1306//*********************************************priority_queue<int> q;//不用写cmp函数也可以,写了也无妨int main(){ int n; while(scanf("%d",&n)!=EOF) { int i,j; int m=n/2; for(i=0;i<n;i++) { int a; scanf("%d",&a); if(i<=m) q.push(a); else { q.push(a); q.pop(); } } double ans=q.top(); q.pop(); if(n%2==0) { ans+=q.top(); q.pop(); ans/=2.0; } printf("%.1f\n",ans); } return 0;}
- ural 1306【priority_queue+堆查找中间值】
- (堆)priority_queue
- 查找单链表中间值
- URAL 1306-Sequence Median(堆)
- 二叉查找树与中间值查找
- 【模板】priority_queue(堆)
- priority_queue 建立最小堆
- ural 1306(堆-优先级序列)
- ural 1306 堆排序找中位数
- POJ 3579 Median 查找中间值 二分
- 关于最小堆以及priority_queue
- URAL 2064|Caterpillars|堆
- C++ priority_queue 最大堆、最小堆
- 查找单链表中间节点
- 查找单链表中间元素
- 查找单链表中间节点
- 单链表查找中间元素
- 查找中间节点
- struts2+freemarker 生成静态页面
- List里find的使用。
- redhat linux enterprise 5 安装Oracle10G
- oracle文档(未整理)
- STL【priority_queue】
- ural 1306【priority_queue+堆查找中间值】
- Web Services
- C# 区分无线网卡和有线网卡的MAC
- 《STL源码剖析》-- stl_set.h
- 《STL源码剖析》-- stl_multiset.h
- 《STL源码剖析》-- stl_map.h
- 《STL源码剖析》-- stl_multimap.h
- shell脚本编程:Linux的自动化逻辑卷创建脚本
- Posix线程编程指南(1)