题目描述:
现在草地上有n堆石头,甄总想要合并这n堆石头成为1堆,但是他每次能力有限,所以只能一次合并2堆石头至1堆。
现在已知第i堆石头有ai块,假设甄总要合并第i堆和第j堆石头,则需要花费ai+aj的力气。
给出n堆石头每堆石头的个数,求出甄总要合并n堆成1堆石头一共需要多少力气。
输入描述:
第1行输入一个整数n,代表一共有n堆石头。
第2行输入n个整数ai,表示第i堆有ai块石头。
输出描述:
输出一行整数,表示一共需要多少力气。
输入:
3
1 2 3
输出:
9
题意:
题目描述
题解:
简单贪心。
每次从队列中拿出最小的两个合并一下就好了
代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<queue>
using

本文介绍了如何解决一个合并石头的问题,即如何将n堆石头通过每次合并两堆成一堆的方式最终合并为一堆,并计算所需总力气。该问题采用贪心策略,每次都选择当前最小的两堆进行合并。给定每堆石头的数量,可以计算出合并的总力气。例如,对于3堆石头1、2、3,合并总共需要9力气。

2001

被折叠的 条评论
为什么被折叠?



