1215. bernoulli
Description
实现一棵Bernoulli树。实现下列操作:
- insert X,将整数X加入优先队列
- delete,将优先队列中最小值弹出
- min,输出最小值
初始优先队列为空。
Input Format
第一行含有一个正整数M(1<=M<=20000),代表总的操作数。
以下M行,每行一个操作。
Output Format
对于min操作,输出一个最小值,回车隔开。
Sample Input1
9
insert 6
insert 6
insert 4
delete
min
delete
insert 9
insert 3
min
Sample Output1
6
3
Limit
输入数据保证合法
#include <iostream>using namespace std;template<class Type>
class priorityQueue {public:priorityQueue() {int capacity = 10;array = new Type[capacity];maxSize = capacity;currentSize = 0;}priorityQueue(const Type data[], int size);~priorityQueue() {delete[]array;}void enQueue(const Type &x);Type deQueue();Type getHead() const {return array[1];}private:int currentSize;Type *array;int maxSize;void doubleSpace();void buildHeap();void percolateDown(int hole);
};template<class Type>
void priorityQueue<Type>::enQueue(const Type &x) {if (currentSize == maxSize - 1)doubleSpace();int hole = ++currentSize;for (; hole > 1 && x < array[hole / 2]; hole /= 2) {array[hole] = array[hole / 2];}array[hole] = x;
}template<class Type>
Type priorityQueue<Type>::deQueue() {Type minItem;minItem = array[1];array[1] = array[currentSize--];percolateDown(1);return minItem;
}template<class Type>
void priorityQueue<Type>::percolateDown(int hole) {int child;Type tmp = array[hole];for (; hole * 2 <= currentSize; hole = child) {child = hole * 2;if (child != currentSize && array[child + 1] < array[child])child++;if (array[child] < tmp) {array[hole] = array[child];} else { break; }}array[hole] = tmp;
}template<class Type>
void priorityQueue<Type>::buildHeap() {for (int i = currentSize / 2; i > 0; i--) {percolateDown(i);}
}template<class Type>
priorityQueue<Type>::priorityQueue(const Type *data, int size) :maxSize(size + 10), currentSize(size) {array = new Type[maxSize];for (int i = 0; i < size; i++) {array[i + 1] = data[i];}buildHeap();
}template<class Type>
void priorityQueue<Type>::doubleSpace() {Type *tmp = array;maxSize *= 2;array = new Type[maxSize];for (int i = 0; i <= currentSize; ++i) {array[i] = tmp[i];}delete[]tmp;
}int main() {int M = 0;int number = 0;char command[7] = {0};cin >> M;priorityQueue<int> b;for (int i = 0; i < M; ++i) {cin >> command;if (command[0] == 'i') {cin >> number;b.enQueue(number);}if (command[0] == 'm') {cout << b.getHead() << endl;}if (command[0] == 'd') {b.deQueue();}}return 0;
}
1215. bernoulli相关推荐
- 概率论中伯努利分布(bernoulli distribution)介绍及C++11中std::bernoulli_distribution的使用
Bernoulli分布(Bernoulli distribution):是单个二值随机变量的分布.它由单个参数ø∈[0,1],ø给出了随机变量等于1的概率.它具有如下的一些性质: P(x=1)= ø ...
- R语言伯努利分布(Bernoulli distribution)函数(dbern, pbern, qbern rbern)实战
R语言伯努利分布(Bernoulli distribution)函数(dbern, pbern, qbern & rbern)实战 目录
- BFS Sicily 1215: 脱离地牢
1215.脱离地牢 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主 ...
- mysql 不能添加外键 1215_MySQL错误1215:无法添加外键约束
我正在尝试将新模式转发工程到我的数据库服务器上,但是我不知道为什么会收到此错误.我试图在这里搜索答案,但是我发现的所有内容都说是将db引擎设置为Innodb或确保要用作外键的键是它们自己表中的主键.如 ...
- POJ-1707 Sum of powers bernoulli方程
题目链接:http://poj.org/problem?id=1707 利用bernoulli方程来解决此题. 数学上,伯努利数Bn的第一次发现是与下述数列和的公式有关: 其中n为固定的任意正整数. ...
- mysql 1215_mysql执行带外键的sql文件时出现mysql ERROR 1215 (HY000): Cannot add foreign key constraint的解决...
ERROR 1215 (HY000): Cannot add foreign key constraint 最近在建表时遇到了这个错误,然后找了下找到了解决办法,记录下: 本来是要建两张表: 出现下面 ...
- MySQL:错误代码1215 无法添加外键约束的解决思路
环境说明: ※MySQL ver:5.7 当你需要添加外键约束的时候,却发现mysql报了个1215错误,一脸懵逼的找到这个博客,那你的问题可能就会得到解决. 解决思路 1.检查两个字段的数据类型是否 ...
- 信息学奥赛一本通(1215:迷宫)
1215:迷宫 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 29437 通过数: 8772 [题目描述] 一天Extense在森林里探险的时候不小心走入 ...
- 能够使用StringBuilder类的常用方法操纵字符串 1215
能够使用StringBuilder类的常用方法操纵字符串 1215 01
最新文章
- numpy中计算矩阵数值的核心函数
- 1. ELK 之elasticsearch 简介、获取、安装
- 【渝粤教育】国家开放大学2018年春季 8664-21T文书档案管理 参考试题
- leetcode1442. 形成两个异或相等数组的三元组数目
- android显示多个网络图片不显示,Android显示网络图片实例
- templates是什么意思_什么?噪音可以用来降温做冰箱?
- 小D课堂 - 零基础入门SpringBoot2.X到实战_汇总
- (图论) Tarjan 算法
- matlab生成39码,LaTeX技巧357:MATLAB如何直接生成latex代码?
- Python编程快速上手----让繁琐的工作自动化(1. python编程基础)
- android手机diy,手把手教你如何DIY个性定制属于你的安卓手机浏览器
- 服务器升级微信公告,【更新公告】8月6日先锋服务器停服更新公告
- python大数据读取分析_python 大数据读取
- 升级pip 升级pip3的快速方法
- python数据质量检查
- Linux-hexdump命令调试event驱动—详解(13)
- 数据挖掘实战(6)——机器学习实现文本分类(今日头条tnews数据集)
- java 获取ftp 文件路径_java在浏览器上获取FTP读文件路径
- I2C总线及AT24C02读写
- 刘强东七千字内部信“京东是谁”:比错过机会更可怕的是机会主义
热门文章
- HTML+CSS+JavaScript制作520七夕情人节代码(烟花表白)
- SV--线程(semaphore)
- 爬虫实践(二)--掌阅书城
- [ Linux ] 如何查看内核 Kernel 版本(查多个Kernel的方法)
- Android中陀螺仪的使用
- 150家老字号将进故宫过大年 推介民族品牌
- AMD Athlon CPU 全系列回忆录
- java 图片旋转_Java实现图片旋转、指定图像大小和水平翻转|chu
- 谁会嫌钱多啊,最适合学生党的Python兼职攻略以及接私活经验
- 如何卸载uniaccess安全助手_[教程]如何关闭烦人的电脑弹窗广告?