跟gxy大神还有yzh大神学了学手写的堆,应该比stl的优先队列快很多。 
其实就是维护了一个二叉堆,写进结构体里,就没啥了。。。 
据说达哥去年NOIP靠这个暴力多骗了分

合并果子。。。

 1 template<class T> struct heap{//小根堆
 2     T q[mxn<<2];int sz;
 3     heap(){sz=0;}
 4     inline void push(T x){
 5         q[++sz]=x;
 6         for(int i=sz,j=i>>1;j;i=j,j>>=1)
 7             if(q[i]<q[j]) swap(q[i],q[j]);
 8             else break;
 9     }
10     inline void pop(){
11         q[1]=q[sz--];
12         for(int i=1,j=i<<1;j<=sz;i=j,j=i<<1){
13             if((j|1)<=sz&&q[j|1]<q[j]) j|=1;
14             if(q[j]<q[i]) swap(q[i],q[j]);
15             else break;
16         }
17     }
18     inline const T top(){return q[1];}
19 };
20 heap<data> h1,h2;

View Code

转载于:https://www.cnblogs.com/liutianrui/p/7778947.html

[转载] 管Q某犇借的手写堆相关推荐

  1. 恶补C++:重载手写堆结构体lower_bound()vector构造、析构函数setmappairstack

    部分目录 运算符重载 C++ 函数调用运算符 () 重载 我的经历 关于this 关于友元 附:重载函数 C++补充 优先队列 手写堆 手写堆的存储 手写堆的两个基本操作 插入节点的原理 求当前堆的最 ...

  2. 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整

    problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...

  3. 堆(手写堆包含STL)

     文章目录 前言 一.堆的定义 二.堆的分类及性质(STL的用法) 1.堆的分类 2.STL的用法 3.堆的性质 三.手写堆(重点) 1.手写堆的思想 2.函数模块 3.操作模块 四.完整代码 + 注 ...

  4. Duan2baka的手写堆模板!

    随手翻到了去年写的手写堆- -手写堆真是太蠢了 Lheap:小根堆 Rheap:大根堆 #include<algorithm> #include<cstring> #inclu ...

  5. [转载] Pytorch入门实战-----逻辑回归识别手写数据集

    参考链接: 在PyTorch中使用Logistic逻辑回归识别手写数字 定义的网络比较简单,可以自行修改,调一下参数,识别率就会上去了. import torch import torch.nn as ...

  6. hihoCoder 第136周 优化延迟(二分答案+手写堆)

    题目1 : 优化延迟 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho编写了一个处理数据包的程序.程序的输入是一个包含N个数据包的序列.每个数据包根据其重要程度不同 ...

  7. Djkastra堆(手写堆)优化版

    直接上代码 代码中的注释掉的部分为C++优先队列实现 #include<cstdio> #include<cstdlib> #include<iostream> # ...

  8. 手写堆模板(指针数组)

    文章目录 使用说明 1.插入式建堆 2.直接在数组基础上调整排序建堆 使用说明 本文的堆以小根堆为例,给出模板 使用时将ElementType 修改为对应的数据类型就好 1.插入式建堆 建一个空堆,将 ...

  9. 堆排序(如何手写堆)

    文章目录 1.一道算法题(堆排序模板题) 2.数组模拟小根堆的原理 3.浙大PAT算法题:堆排序还是插入排序 1.一道算法题(堆排序模板题) acwing838. 堆排序 838. 堆排序 分析: 这 ...

最新文章

  1. 16S预测细菌组表型-bugbase:革兰氏阴阳、生物膜、致病力、移动元件、氧气消耗等
  2. windows下php7.1安装redis扩展以及redis测试使用全过程
  3. RHEL5.8安装Oracle10g
  4. ACL2020 | 基于Knowledge Embedding的多跳知识图谱问答
  5. HTML5/CSS3基础
  6. 面试被吊打 - Redis原理
  7. java 枚举 大小_Java枚举入门
  8. 计算机三级需要学哪些,计算机三级有必要考吗_计算机三级有哪些科目_上学吧...
  9. 前端JS笔试面试题目
  10. mysql断了导致rabbitmq挂了,rabbitmq 消费线程无故中断连接
  11. mysql 排序字段 添加索引吗_mysql需要在哪些字段上加索引?
  12. using namespace std;的陷阱
  13. Pytorch创建多任务学习模型
  14. leetcode零散题汇总
  15. 华为交换机和锐捷交换机端口隔离
  16. MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)
  17. 实体零售关店潮之下 这个美国品牌偏不信邪
  18. 中学学校计算机教室平面布置图,学校布局平面图.doc
  19. 会议Oral的线上视频的录制
  20. Linux日志写空,(十四)Linux日志管理

热门文章

  1. C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
  2. 汇编:ZF(zero flag)标志位
  3. 通过几个问题深入分析Vue中的diff原理
  4. Android实现炫酷SVG动画效果
  5. Docker aufs存储驱动layer、diff、mnt目录的区别
  6. Windows+Git+TortoiseGit+COPSSH安装图文教程 转载
  7. python pexpect 模块
  8. PyCharm 快捷操作
  9. Java 数据类型:对人的描述
  10. myeclipse导入外部javaweb项目