hihoCoder#1105 题外话·堆
有没有更优雅地堆模板啊,总感觉我写的有些啰嗦
代码:
#include <iostream>
using namespace std;
#define MAX_NODE 100008
struct Heap {
int core[MAX_NODE];
int size;
Heap() : size() {}
void push(int w) {
int c, p;
core[++size] = w;
c = size;
p = c >> ;
while (c > && core[p] < core[c]) {
swap(core[p], core[c]);
c = p;
p >>= ;
}
}
int pop() {
int res = core[];
int c, k;
swap(core[], core[size]);
size--;
c = ;
k = c << ;
while (k <= size) {
if (k + <= size && core[k + ] > core[k])
k = k + ;
if (core[k] <= core[c])
break;
swap(core[k], core[c]);
c = k;
k <<= ;
}
return res;
}
};
int main() {
int N, w;
char t;
Heap h;
scanf("%d\n", &N);
while (N--) {
scanf("%c", &t);
if (t == 'A') {
scanf("%d\n", &w);
h.push(w);
}
else {
scanf("%c", &t);
printf("%d\n", h.pop());
}
}
return ;
}
hihoCoder#1105 题外话·堆的更多相关文章
- 【HIHOCODER 1105】题外话·堆
描述 小Ho有一个糖果盒子,每过一段时间小Ho都会将新买来的糖果放进去,同时他也会不断的从其中挑选出最大的糖果出来吃掉,但是寻找最大的糖果不是一件非常简单的事情,所以小Ho希望能够用计算机来他帮忙计算 ...
- [hihoCoder] 题外话·堆
A direct applicatin of the heap data structure. Specifically, a max heap is used. The required funct ...
- HihoCoder1105 题外话·堆(基础二叉搜索树)
第1行为1个整数N,表示需要处理的事件数目. 接下来的M行,每行描述一个事件,且事件类型由该行的第一个字符表示,如果为'A',表示小Ho将一粒糖果放进了盒子,且接下来为一个整数W,表示这颗糖果的重量: ...
- 题外话(简识UML语言)
PS:“不积小流无以成为江河,不积跬步无以至千里”,学习也好,吃饭也罢,做任何事情都需要一步一个脚印,逐步积累过程,最后才会知识越来越丰富,吃的越饱… 在学习过程中用到了一些框图,用于绘画框图的语言数 ...
- 题外话:Lua脚本语言存在的意义
纯属个人见解. 大致来说:c/c++执行效率高,游戏中一些性能敏感的复杂计算需要用c/c++来实现,防止游戏卡顿和低帧率.这些复杂计算包括战斗逻辑,复杂AI,骨骼动画蒙皮骨骼点的坐标计算等等.但c++ ...
- 题外话 -- windows10系统C盘空间变大 CPU莫名跑满
场景描述: 安装windows10一段时间了,发现C盘空间越来越小 CPU有时候,莫名其妙的跑满,造成操作卡顿. 如何处理参考: windows10 C盘空间清理:https://jingyan.ba ...
- 题外话:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗
以下文章虽然是编程,但是对于IT行业都通用 文章背景,回答提问:我想立刻辞职,然后闭关学习编程语言,我给自己3个月时间学习C语言!这样行的通吗? 我的建议是这样:1. 不要辞职.首先说,你对整个开发没 ...
- 一个.net Cookie组件的bug引发的题外话
在.net里,做过Http模拟发送请求的朋友们应该遇到过,有个时候无论怎么努力,都没办法让Cookie跟网页用浏览器所收集的一样,其中原因除了有些Cookie大概是ReadOnly之外,似乎另有隐情: ...
- 题外话:计算密集型 vs IO密集型
我们把任务分为计算密集型和IO密集型,erlang作为IO密集型的语言,适合网关等相关的场景,而对计算达到某一量级后,可能处理效率下降的很明显. erlang不适合数值计算.erlang是解释型的,虽 ...
随机推荐
- json字符串和字典类型的相互转换
在开发过程中,有时候需要将json字符串转为字典类型,反之亦然,通常采用.Net的开源类库Newtonsoft.Json进行序列化,这里我也是采用这个,不过我更喜欢写扩展方法方便在项目的调用. 首先新 ...
- 浅析cookie
基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中. 以博客园为例,我们看看cookie有哪些属性: 1.Name:cookie的名称: 2. ...
- #pragma使用分析
#pragma简介 #pragma用于指示编译器完成一些特定的动作 #pragma所定义的很多指示字是编译器特有的 #pragma在不同的编译器间是不可移植的 预处理器将忽略它不认识的#pragma指 ...
- Design Compiler 综合
综合(synthesis) = 转换(translation) + 优化(logic optimization) + 映射(gate mapping): 转换阶段将HDL语言描述的电路用门级逻辑实现. ...
- HttpServletResponse 的状态码
public static final int SC_ACCEPTED 202 public static final int SC_BAD_GATEWAY 502 public static ...
- Js学习文件上传
// 文件上传 jQuery(function() { var $ = jQuery, $list = $('#thelist'), $btn = $('#ctlBtn'), state = 'pen ...
- Win2D 入门教程 VB 中文版 - 防止内存泄漏
避免内存泄漏 本文从微软官方文档翻译 http://microsoft.github.io/Win2D/html/RefCycles.htm 如果文档有问题,可以在 https://github.co ...
- web测试需要注意点
- environ - 用户环境(变量)
SYNOPSIS 总览 extern char **environ; DESCRIPTION 描述 变量 environ 指向的是一个叫 'environment'(环境)的字符串数组 (这个变量必须 ...
- [CF] 950B Intercepted Message
B. Intercepted Message time limit per test1 second memory limit per test512 megabytes inputstandard ...