P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G

技术P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fe

p 1090【noip 2004改良组】联合果/【usaco 06 nov】栅栏修复G

题目描述

在一个果园里,多多把所有的水果都击倒了,并根据不同的水果种类把它们分成不同的堆。多多决定把所有的水果组合成一堆。

每次合并,多多可以将两堆水果合并在一起,消耗的体力等于两堆水果的重量之和。可以看出所有的水果都经过n-1n?一次合并后,只剩下一堆了。合并果实消耗的总体力等于每次合并消耗的体力之和。

因为要花大力气把这些水果搬回家,所以在合并水果的时候要尽量节约能源。假设每个水果的重量为11,水果的种类数和每种水果的数量都是已知的,那么你的任务就是设计一个组合序列方案,使更多的水果消耗的体力最小,并输出这个最小体力消耗值。

比如水果有33种,依次是11种、22种、99种。首先,11堆和22堆可以合并。新桩数33根,能耗33。然后将新桩与原第三桩合并,得到新桩,编号为1212,体力为1212。所以需要很大的体力=3 12=15=3 12=15。可以证明1515是最小物理消耗值。

输入格式

总共两排。

第一行是整数n(1n10000),表示水果的种类数。

第二行包含由空格分隔的n个整数,第I个整数ai?(1ai?20000)是第I个水果的数量。

输出格式

整数,即最小体力消耗值。输入数据以确保该值小于2 {31}。

输入输出样例

输入#1副本。

1 2 9

输出#1副本

15

说明/提示

对于30%的数据,确保n1000:

对于50%的数据,确保n5000;

对于所有数据,确保n10000。

分析

从观察可以看出,合并得越早,计算的次数越多,所以贪心策略是先合并小堆。

#includebits/stdc。h

使用命名空间标准;

int n;

priority_queueint,vectorint,greater int a;

int ans

int main()

{

cinn

for(int I=1;I=n;(一)

{

int p;

cinp

a . push(p);

}

而(a . size)(1)

{

int j=a . top();

a . pop();

int k=a . top();

a . pop();

ans=(j k);

a . push(j . k);

}

coutansendl

返回0;

}

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/100410.html

(0)

相关推荐

  • python中如何倒序遍历列表(python数组中序遍历)

    技术怎样返回的python中序遍历这期内容当中小编将会给大家带来有关怎样返回的python中序遍历,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。【题目】给定一个二叉树,返回它的中序 遍

    攻略 2021年12月13日
  • mysql中怎么查看进行操作的时间(mysql临时关闭日志)

    技术mysql如何关闭日志这篇文章给大家分享的是有关mysql如何关闭日志的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 mysql关闭日志的方法:1、在mysql

    攻略 2021年12月25日
  • 环境搭建

    技术环境搭建 环境搭建1.卸载JDK直接删除Java的安装目录
    删除环境变量中的JAVA_HOME
    删除path下的关于Java的目录
    打开命令提示符输入java -version进行确认2.安装JDK

    礼包 2021年11月27日
  • Oracle 12c R2版本 Application Containers的特性是什么

    技术Oracle 12c R2版本 Application Containers的特性是什么本篇文章给大家分享的是有关Oracle 12c R2版本 Application Containers的特性是什么,小编觉得挺实

    攻略 2021年11月12日
  • web组件化

    技术web组件化 web组件化 - 微前端的改进:子应用Webpack排除React依赖包第一篇介绍了如何将React组件转换为Web Component
    第二篇介绍了子应用(Web Component

    礼包 2021年10月27日
  • Oracle中出现ORA-00600内部错误代码怎么办

    技术Oracle中出现ORA-00600内部错误代码怎么办这篇文章将为大家详细讲解有关Oracle中出现ORA-00600内部错误代码怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获

    攻略 2021年11月17日