noip  合并果子

#include<bits/stdc++.h>
using namespace std;
int heap[maxn];
int size=0;
void input(int d)
{heap[size++]=d;push_heap(heap,heap+size,greater<int>());
}
int get()
{pop_heap(heap,heap+size,greater<int>());//pop_heap(heap,heap+size);return heap[--size];
}
int32_t main()
{int n; cin>>n;for(int i=0;i<n;i++){int d; cin>>d; input(d);}int ans=0;for(int i=1;i<n;i++){int a=get(); int b=get();input(a+b);ans+=a+b;}cout<<ans<<endl;return 0;
}

好的代码

#include<bits/stdc++.h>
using namespace std;
template<typename T>
void Print(T& V)
{typename T::iterator iter=V.begin();while(iter != V.end()){cout<<*iter++<<" ";}cout<<endl;
}
int main()
{vector<int> ivec;for(int i=3;i<=7;++i)ivec.push_back(i);for(int i=5;i<=9;++i)ivec.push_back(i);for(int i=1;i<=4;++i)ivec.push_back(i);cout<<"原数据:";Print(ivec);make_heap(ivec.begin(),ivec.end());//做最大堆排序,其实还在vector容器内cout<<"堆排后:";Print(ivec);pop_heap(ivec.begin(),ivec.end());//删除最大堆,其实是把数据放到最后了!cout<<"删除后:";Print(ivec);ivec.pop_back();pop_heap(ivec.begin(),ivec.end());//删除最大堆,其实是把数据放到最后了!cout<<"删除后:";Print(ivec);ivec.pop_back();ivec.push_back(15);cout<<"添加数据后:";Print(ivec);push_heap(ivec.begin(),ivec.end());//放入最大堆,其实是把新加入的数据,按照堆排加入堆内cout<<"把最后一个数加入堆里:\n";Print(ivec);sort_heap(ivec.begin(),ivec.end());//把堆排顺序,还原成一般的排序算法cout<<"还原堆排顺序:\n";Print(ivec);return 0;
}

转载于:https://www.cnblogs.com/Andromeda-Galaxy/p/9516866.html

heap 的一些用法相关推荐

  1. c++ 关于heap的STL用法

    c++ 关于heap的STL用法 #include <iostream> #include <vector> #include <algorithm> #inclu ...

  2. 内存泄漏的定位与排查:Heap Profiling 原理解析

    系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败,这就是典型的内存泄漏问题.这类问题通常难以预测,也很难通过静态代码梳理的方式定位.Heap Profiling 就是帮助我们解决此类问题的 ...

  3. golang的heap profile原理

    golang中提供了多种profile用于分析golang程序的CPU.内存等使用情况.heap profile是堆内存使用情况的profile信息,用于分析程序当前的堆内存使用情况,在分析内存开销和 ...

  4. 关于某日访问次数最多的IP的topK问题的三种解法

    题目描述 在july大神的博客中,看到这样两道题: 1. 海量日志数据,提取出某日访问百度次数最多的那个IP. 2. 假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复 ...

  5. python链表添加多个值_Python基础10之数据结构(下)

    我的施工之路 上图施工计划,已完成专题: 1.数字专题 2.字符串专题 3.列表专题 4.流程控制专题 5.编程风格专题 6.函数使用专题 7.面向对象编程(上篇) 8.面向对象编程(下篇) 9.Py ...

  6. 【Python基础】盘点 Python 10 大常用数据结构(下篇)

    我的施工之路 虽然艰辛,却有读者们陪伴 Python 常用数据结构 此专题<盘点Python10大常用数据结构>目录: 学习目的 学习目标 1 list 2 tuple 3 set 4 d ...

  7. jmap java opts_jmap --查看JVM内存使用详情

    概述 命令jmap是一个多功能的命令.它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息.查看 ClassLoader 的信息以及 finalizer 队列. jmap命 ...

  8. STL容器的底层数据结构

    本文部分内容转自此博客 目录 vector list deque stack queue heap priority_queue set map multiset/multimap 哈希表hashta ...

  9. 刷题upupup【Java中Queue、Stack、Heap用法总结】

    [Queue] 先进先出(First-In-First-Out),LinkedList实现了Queue接口.它只允许在表的前端进行删除操作,而在表的后端进行插入操作. add()       增加一个 ...

最新文章

  1. servlet生命周期
  2. python2.7 pip安装htmlreport报错_pytest十五:pytest-html 生成 html 报告
  3. mybatis 参数
  4. vscode如何及时提示flutter代码
  5. 数仓系列 | 深入解读 Flink 资源管理机制
  6. fiddler模拟低速网络
  7. android手机连接PC后怎样切换为U 盘模式
  8. 电子邮件通知系统前十名的 ”磁盘贪婪用户“
  9. java is a like a_小猿圈java之is-a、have-a和like-a的区别
  10. android 对象传输及parcel机制
  11. 安卓自定义控件,自行绘制文字
  12. 将QQ语音的slk格式转化为wma
  13. php面向对象编程孙卫琴,什么是面向对象编程(OOP)?,面向对象编程孙卫琴
  14. 感性负载,容性负载,阻性负载
  15. SQL去重的三种方法汇总​
  16. exlc表格怎么换行_excel表格怎么换行_excel表格怎么换行上下换行
  17. 化合物相似性搜索_SCIFINDER相似结构搜索教程
  18. 全年日历平铺展示以及日期批量选择
  19. 牛逼!这届WWDC依旧展现了那个让你无法复制的苹果!
  20. POI Excel实现内容替换

热门文章

  1. LOJ2980 THUSC2017大魔法师(线段树+矩阵乘法)
  2. 人工智能实战_第一次作业_杨佳宁_16141032
  3. Ubuntu18.04 安装搜狗输入法后无法启动的问题
  4. ajax的请求参数详解以及前后台交互详解
  5. android-DNS服务找不到
  6. 网上找工作秘籍(3)
  7. Pytorch--Tensor, Numpy--Array,Python--List 相互之间的转换
  8. brainfu*k语言执行
  9. 如何在vs2010中修改栈的大小
  10. Kali linux安装漏洞扫描工具Nessus指南