UESTC 1063 秋实大哥与妹纸 二叉堆(大根树)
来源:互联网 发布:广告图片制作软件 编辑:程序博客网 时间:2024/05/17 09:02
秋实大哥与妹纸
Time Limit: 3000/1000MS (Java/Others) Memory Limit: 1500/1500KB (Java/Others)
致中和,天地位焉,万物育焉。秋实大哥是一个追求中庸的人。
虽然秋实大哥的仰慕者众多,但秋实大哥不喜欢极端的妹纸。所以他想从所有仰慕自己的妹纸中挑选出一个符合中庸之道的。
每一个妹纸对秋实大哥的仰慕程度可以用一个整数
计算有限个数的数据的中位数的方法是:
把所有的同类数据按照大小的顺序排列。如果数据的个数是奇数,则中间那个数据就是这群数据的中位数;如果数据的个数是偶数,则中间那2个数据的算术平均值就是这群数据的中位数。
Input
第一行有一个整数
接下来
Output
输出这
Sample input and output
3123
2.0
Hint
注意内存大小限制。
Source
2015 UESTC Training for Data Structures
The question is from here.
My Solution
Memory Limit: 1500/1500KB (Java/Others)
卡内存的题目,第一次遇到 (┬_┬)
维护好n/2+1个元素就好,后面的push,然后pop
本来用C++STL的priority_queue写了一个,结果爆内存了,MLE
所以用二叉堆来写
#include <iostream>#include <cstdio>using namespace std;const int maxn = 125001;int heap[maxn], sz = 1;void up(int i) { int x = heap[i]; for(int j = i/2; j >= 1; j/=2) { //前面这里打成了 i ,结果WA2 而不是WA1, 估计是test2的一些数据触发bug吧☺ if(heap[j] > x){ heap[i] = heap[j]; i = j; } else { break; } } heap[i] = x;}void down(int i) { int x = heap[i]; for(int j = i*2; j <= sz; j*=2){ j += j < sz&& heap[j] > heap[j+1]; if(heap[j] < x){ heap[i] = heap[j]; i = j; } else { break; } } heap[i] = x;}void push(int v) { heap[++sz] = v; up(sz);}void pop() { swap(heap[1], heap[sz]); sz--; down(1);}int top() { return heap[1];}int main(){ int n, a; scanf("%d", &n); for(int i = 0; i < n/2 +1; i++){ scanf("%d", &a);push(a); } for(int i = n/2 +1; i < n; i++){ scanf("%d", &a); push(a);pop(); } pop(); if(n % 2 ==1) printf("%.1f", (double)heap[1]); else{ a = top();pop(); printf("%.1f", (double)a/2+(double)top()/2); } return 0;}
thank you!
0 0
- UESTC 1063 秋实大哥与妹纸 二叉堆(大根树)
- [UESTC 1060]秋实大哥与快餐店
- [UESTC 1061]秋实大哥与战争
- 秋实大哥与小朋友 UESTC
- 秋实大哥与线段树 UESTC
- UESTC-1057 秋实大哥与花
- CDOJ_1063 秋实大哥与妹纸(堆结构)
- uestc data structure training f 秋实大哥与妹纸
- uestc数据结构训练B - 秋实大哥与花
- uestc data structure n 秋实大哥与快餐店
- uestc data structure D - 秋实大哥与战争
- UESTC -- 1057 秋实大哥与花(线段树)
- UESTC -- 1061 秋实大哥与战争(暴力/set)
- [UESTC 1146]秋实大哥与连锁快餐店
- 跟着卿学姐写线段树。。。 ( 秋实大哥与花 UESTC
- UESTC 1060 秋实大哥与快餐店(字典树)
- UESTC-1073-秋实大哥与线段树
- [UESTC 1074]秋实大哥搞算数
- 修改Sublime Text 3 的侧边栏字体大小,字体类型
- Android实现类淘宝多图评价
- segmentControl实现控制器的切换
- 2016年元月份腾讯测试开发补录面试总结
- 自定义AsyncTaskLoader
- UESTC 1063 秋实大哥与妹纸 二叉堆(大根树)
- Android开发之发送自定义广播
- DB2 基础系列文章
- 杭电1161Eddy's mistakes
- servlet处理客户请求,MVC设计模式
- 定位权限是否开启
- NSUserDefaults
- poj 3614 Sunscreen 贪心
- SpringMVC中使用Interceptor拦截器