解释下这个程序,详细一点,用得是什么数据结构原题是这样的佳佳的爷爷有一个苹果园,最近苹果都熟了,都从树上掉了下来,佳佳要帮爷爷把树下的苹果堆到一起,他每次可以任意选两堆合成一

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/30 01:01:35
解释下这个程序,详细一点,用得是什么数据结构原题是这样的佳佳的爷爷有一个苹果园,最近苹果都熟了,都从树上掉了下来,佳佳要帮爷爷把树下的苹果堆到一起,他每次可以任意选两堆合成一
xUnA=V ?ջk햟1& RXcPj[ѴZ`}٫gvĢxeL63|;ߙ3ȇf:wsbG~29/}dh)on uM{*.w˖mI3Ua q̨%xP 0:=q]!%6_ ԞOky(,gC8llABjgmv0>5 ' <_Qj\Cނ23:7O 9YB]V c Wn _WP1OkmFP'3  F,Ԏ>lf=iwJA .kQN\jr.r6Ά_s]flj̏r<>oVZtA~8\{4 W?dK,b/;]DK#6tm~~FlN)>j5c99pIk=9ר3ƓCM8:D7+c;<=BENxLp]WAs#Aqͽ2Dєx‘ jNW(Jy~e*5HU_~4 )9)*9DIq>ZFQpQrXgA"xJc|@ OXb>>6k吸#OGs@L$!j^FTцʊA$g L)\*Vޠr "K.';Fǩ܁䜱

解释下这个程序,详细一点,用得是什么数据结构原题是这样的佳佳的爷爷有一个苹果园,最近苹果都熟了,都从树上掉了下来,佳佳要帮爷爷把树下的苹果堆到一起,他每次可以任意选两堆合成一
解释下这个程序,详细一点,用得是什么数据结构
原题是这样的
佳佳的爷爷有一个苹果园,最近苹果都熟了,都从树上掉了下来,佳佳要帮爷爷把树下的苹果堆到一起,他每次可以任意选两堆合成一堆,耗费的体力是这两堆苹果苹果数量的和.他最后的目标是将所有的果子堆成一个大堆,那么他最少耗费的体力是多少呢?
要求:
(1)输入:多组测试数据,每组数据输入的第一行是一个数n,表示果子原来有多少堆,接下来n个数,每个数表示每堆苹果的个数.
(2)输出:对于每组数据,输出一个整数,表明佳佳最少需要的体力.
(3)所设计的数据结构应尽可能节省存储空间.
(4)程序的运行时间应尽可能少.
#include "stdio.h"
#include "string.h"
#include //stl队列容器
#include //stl动态数组容器
#include //stl通用算法
using namespace std;
#define M 100010
int main()
{
int i,j;
int n,x,ans;
int x1,x2;
priority_queue pq; //重载后定义优先队列的方式(这个到底是什么意思啊.)
printf("输入苹果的堆数:");
while(scanf("%d",&n)>0)
{
while(!pq.empty())
pq.pop();
printf("输入各堆苹果的个数:");
for(i=0;i1)
{
x1=pq.top();pq.pop();
x2=pq.top();pq.pop();
ans+=x1+x2;
pq.push(x1+x2);
}
printf("佳佳总共要消耗体力:");
printf("%d\n",ans);
}
return 0;
}

解释下这个程序,详细一点,用得是什么数据结构原题是这样的佳佳的爷爷有一个苹果园,最近苹果都熟了,都从树上掉了下来,佳佳要帮爷爷把树下的苹果堆到一起,他每次可以任意选两堆合成一
来302我和你详细解释