http://tyvj.cn/p/1066

贪心地先把所有果子放进小根堆,然后取出两个最小值相加后再放进去,在此期间ans+=两个最小值的和,直到只剩1个元素停止

#include<cstdio>
#include<cstring>
using namespace std;
int heap[10005];
int hsize = 0;
int put(int x)
{hsize++;heap[hsize] = x;int now, next = hsize;while (next > 0){now = next;if (heap[now/2]>heap[now]){int t = heap[now/2];heap[now/2] = heap[now];heap[now] = t;next = now / 2;} else break;}
}
int get()
{int ret = heap[1];heap[1] = heap[hsize--];int now, next = 1;while (next * 2 <= hsize){now = next*2;if (now + 1<hsize&&heap[now + 1]<heap[now])now++;if (heap[now/2]>heap[now]) {int t = heap[now/2];heap[now/2] = heap[now];heap[now] = t;next = now;} else break;}return ret;
}
int main ()
{int n;scanf("%d", &n);for (int i=1;i<=n;i++){int y;scanf("%d", &y);put(y);}int ans = 0;while (hsize > 1){int a = get();int b = get();ans += a+b;put(a+b);}printf("%d\n", ans);return 0;
}

转载于:https://www.cnblogs.com/flyinthesky1/p/6384349.html

|Tyvj|NOIP2004|堆|贪心|P1066 合并果子相关推荐

  1. SDUT 2127 树-堆结构练习——合并果子之哈夫曼树(优先队列)

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description ...

  2. 树-堆结构练习——合并果子之哈夫曼树

    树-堆结构练习--合并果子之哈夫曼树 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆 ...

  3. 树-堆结构练习——合并果子之哈夫曼树(是最优二叉树题目的缩影)

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个果园里,多多已经将所有的果子 ...

  4. 树-堆结构练习——合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip ...

  5. 树-堆结构练习——合并果子之哈夫曼树oj

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Problem Description 在一个果园里,多多已经将所有的果子打了下 ...

  6. L - 树-堆结构练习——合并果子之哈夫曼树

    L - 树-堆结构练习--合并果子之哈夫曼树 题目链接: link. 题目描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合 ...

  7. sdut 2127 树-堆结构练习——合并果子之哈夫曼树 优先队列

    Problem Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的 ...

  8. java合并果子_C++(STL)树-堆结构练习——合并果子之哈夫曼树

    priority_queue 对于基本类型的使用方法相对简单. 他的模板声明带有三个参数,priority_queue Type 为数据类型, Container 为保存数据的容器,Functiona ...

  9. 贪心算法——洛谷(P1090)[NOIP2004]合并果子

    该题目也属于经典的贪心算法,在这里熟悉C++里优先队列的使用. 需要导入头文件:   #include<queue> 从这个问题可以深挖出神奇的哈夫曼树问题. 因为这题里合并的是二叉树,所 ...

最新文章

  1. Oracle内部错误:ORA-00600:[4097]一例
  2. calcBackProject函数(搜索小物体的位置)
  3. SQLServer制作一个包含三个表的视图
  4. python常用异常处理
  5. 算法竞赛入门与进阶 (一)枚举
  6. 使用Thrift RPC编写程序
  7. 自己遇到oracle的错误记录
  8. 计算机怎么远程桌面,电脑远程桌面如何连接 电脑远程桌面连接方法【详解】...
  9. python 把中文句子分割成一个一个的字(英文适用)
  10. ID3/C4.5/Gini Index
  11. jquery图片预加载+自动等比例缩放插件
  12. 手工建立mysql的服务_怎样自已手工打开mysql服务
  13. poj 1753 Flip Game 高斯消元 异或方程组 求最值
  14. Futter基础第19篇: 实现调用第三方时间选择器、日期选择器、时间戳
  15. mac apache修改默认网站目录
  16. Winfrom 桌面弹窗拦截 关闭进程简易程序 源代码下载
  17. 数据库的创建及使用方法
  18. 【Excel 教程系列第 11 篇】Excel 如何快速下拉填充序列至 10000 行
  19. 逐步搜索法的matlab,逐步扫描法(搜索解区间)
  20. UE4_如何在UI中设置动态图片

热门文章

  1. 横流式冷却塔计算风量_冷却塔空气动力是怎么计算的?
  2. php mysql 双条件排序,PHP-MySQL联合查询,按2个变量排序
  3. vs2013 未将对象引用设置到对象的实例
  4. 程序员应该了解的几个接单平台,私活,码农!
  5. java输入键盘_java键盘输入
  6. u9系统的使用方法仓库_新风系统如何使用 新风系统使用方法介绍【图文】
  7. storm 机器上日志查询_Storm原理与实践大数据技术栈14
  8. 大数据综合能力测试_如何完成大数据测试?资深测试从功能测试角度为你分析分析...
  9. php中tags,php中strip_tags()函数的用法举例
  10. python xpath提取转码_python-xpath获取html文档的部分内容