problem

  • 有n堆果子
  • 每次可以将两堆果子合并,代价为新堆的果子数。
  • 求把所有果子合并成一堆的最小代价。

solution

  • 每次合并最小的两堆
  • 用堆或者两个队列维护

证明?反证法。

codes

#include<iostream>
#include<queue>
using namespace std;
priority_queue<int, vector<int>, greater<int> >q;
int main(){int n, ans = 0;  cin>>n;for(int i = 0; i < n; i++){int a;  cin>>a;  q.push(a);}for(int i = 0; i < n-1; i++){int a = q.top(); q.pop();int b = q.top(); q.pop();ans += a+b;  q.push(a+b);}cout<<ans;return 0;
}

【NOIP2004】【Luogu1090】合并果子相关推荐

  1. 合并果子(NOIP2004)

    合并果子(NOIP2004) [问题描述] 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了 不同的堆.多多决定把所有的果子合成一堆.每一次合并,多多可以把两堆果子 合并到一起, ...

  2. [NOIP2004]合并果子

    题目: [NOIP2004]合并果子 ,哈哈,我们今天来看一道比较简单的题嘛,这是选自NOIP上的一道题,好了,我们一起来看看题意吧: 考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目 ...

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

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

  4. 合并果子2之蚂蚁搬沙

    合并果子2之蚂蚁搬沙 Description 山谷中住着一个巨大的蚂蚁王国,蚁穴外有一个整洁的广场,天气晴好时蚁群常在那里举行各种活动.这天夜里,天降果子尘,第2天,广场上堆满了大大小小的果子堆,蚁哨 ...

  5. [LUOGU] 1090 合并果子

    题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看 ...

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

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

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

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

  8. PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子

    文章目录 题目分析 题目来源 题目分析 来源:acwing 板子题:合并果子合并果子优先队列 分析:贪心策略是: 每次取最短的两条绳子a和b.该两条绳子合并为1条绳子,且长度变为a+b2\frac{a ...

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

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

  10. 合并果子_tyvj1066_vijos1097_codevs1063_贪心+堆

    描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看 ...

最新文章

  1. 计算机视觉 专业术语,计算机视觉专业相关术语中英文对照5
  2. day32-1 事件Event
  3. 成功解决ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() o
  4. 4块硬盘做raid几_Linux高级文件系统管理之RAID
  5. MVC5中EF6 Code First启动慢及间隙变慢优化的实践经验(转)
  6. 什么代码才是线程安全的
  7. springmvc 源码分析
  8. 产品发布系统_【产品发布】第3期|阀门遥控系统
  9. php 检查数据库查询结果,php数据库连接、查询、显示结果的小例子
  10. 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST)
  11. linux代码实现进程监控,linux进程监控shell脚本代码
  12. SharePoint 2010 获取列表全部定义方法
  13. HDU1215 七夕节(模拟 数学)
  14. Python基础知识笔记(一)
  15. JAVA-幂等性(一):http幂等性
  16. retainAll()和removeAll()
  17. CDR插件开发之Addon插件004 - VS2022开发环境简介及个性化配置
  18. 淘宝首页性能优化实践
  19. 关于Gradle的Instant Run
  20. 大点符号pt 1初学者指南

热门文章

  1. 对数的应用 —— 数位(digits)的个数
  2. 对角矩阵(diagonal matrix)
  3. matlab 实用程序片段
  4. Tricks(二十)—— 从 N 个数中等概率地产生 M 个数
  5. Python机器学习——如何shuffle一个数据集(ndarray类型)
  6. mos 控制交流_MOS管和IGBT管的区别
  7. 导盲机器人 英语作文_小米有品推学习平板:小爱AI陪娃学英语,一台陪娃十年成长...
  8. python画50个图-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?
  9. python为什么叫爬虫-可以写爬虫的那么多,为什么只有python火了?
  10. python画三维图-Python基于matplotlib实现绘制三维图形功能示例