[2004年NOIP提高组] 合并果子
每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。
因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。
例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。
输入
输出
样例输入
3
1 2 9
样例输出
15
提示
对于30%的数据,保证有n<=1000:
对于50%的数据,保证有n<=5000;
对于全部的数据,保证有n<=10000。
因为先合并的果子重量会被累加多遍
#include<bits/stdc++.h> using namespace std; int s,a,b,temp,sum; priority_queue<int, vector<int>, greater<int> > heap; int main()
{
cin>>s; for(int i=0;i<s;i++)
{
cin>>temp;
heap.push(temp);
}
while(heap.size()>1)
{
a=heap.top();
heap.pop();
b=heap.top();
heap.pop();
sum+=a+b;
heap.push(a+b);
} cout<<sum;
return 0;
}
[2004年NOIP提高组] 合并果子的更多相关文章
- 洛谷P6033 [NOIP2004 提高组] 合并果子 加强版 (单调队列)
数据加强了,原来nlogn的复杂度就不行了...... 首先对原来的n个数排序(注意不能用快排),因为值域是1e5,所以可以开桶排序,开两个队列,一个存原来的n个数(已经满足单增),另一队列存两两合并 ...
- NOIP提高组2004 合并果子题解
NOIP提高组2004 合并果子题解 描述:在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消 ...
- 津津的储蓄计划 NOIp提高组2004
这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...
- 计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...
- 1043 方格取数 2000 noip 提高组
1043 方格取数 2000 noip 提高组 题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样 ...
- [NOIP提高组2018]货币系统
[TOC] 题目名称:货币系统 来源:2018年NOIP提高组 链接 博客链接 CSDN 洛谷博客 洛谷题解 题目链接 LibreOJ(2951) 洛谷(P5020) 大视野在线评测(1425) 题目 ...
- NOIP提高组初赛难题总结
NOIP提高组初赛难题总结 注:笔者开始写本文章时noip初赛新题型还未公布,故会含有一些比较老的内容,敬请谅解. 约定: 若无特殊说明,本文中未知数均为整数 [表达式] 表示:在表达式成立时它的值为 ...
- 2018.12.30【NOIP提高组】模拟赛C组总结
2018.12.30[NOIP提高组]模拟赛C组总结 今天成功回归开始做比赛 感觉十分良(zhōng)好(chà). 统计数字(count.pas/c/cpp) 字符串的展开(expand.pas/c ...
- 2018.12.08【NOIP提高组】模拟B组总结(未完成)
2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...
- $NOIp$提高组历年题目复习
写在前面 一个简略的\(NOIp\)题高组历年题目复习记录.大部分都有单独写题解,但懒得放\(link\)了\(QwQ\).对于想的时候兜了圈子的题打上\(*\). \(NOIp2018\ [4/6] ...
随机推荐
- Java8 Date Time API 简介
1.Java8 Date Time API 简介 1.1.新旧 Date Time API 对比 包位置对比 1.Java8之前的日期.时间分布在java.util和java.sql的包中,此外用于格 ...
- 25js String(字符串)对象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 001. html篇之《基础内容》
html基础内容 1. 什么是html Hypertext Markup Language 超文本标记语言 2. 基本结构 <!DOCTYPE html> <!-- 此为html5的 ...
- (0619) wavedrom 画时序图---链接
https://www.cnblogs.com/jackzhang001/p/15879207.html
- js获取父节点的方式
js获取父节点的方式: 1.parentNode获取父节点 获取的是当前元素的直接父元素.parentNode是w3c的标准. var p = document.getElementById(&quo ...
- usb 2.0 packet
注意PID[7:0] = {~pid[3:0], pid[3:0]}
- clickHouse安装踩坑
1.查看版本 clickhouse-server --version 2.下载 linux机器上 wget下载,有两个安装包体积较大 wget https://packages.clickhouse ...
- 报错:tar: This does not look like a tar archive
一.现象 解压时报错: 二.解决办法 gzip -d xxxx.tar.gz (对于.tar.gz文件的处理方式) tar -xf xxxx.tar (对于.tar文件处理方式) 三.查看
- 微信小程序-通过绑定事件进行传值
一.数据绑定: <view bindtap="node" data-num="5"> 点击传值:{{nums}} </view> dat ...
- redis geo 做距离计算排序分页
redis geo 做距离计算排序分页 // 添加经纬度和店铺id geoadd store_list lng lat store_id 计算距离排序和生成临时文件 georadius store_l ...