早教吧作业答案频道 -->其他-->
合并果子C/C++最好能详细点其他貌似要超时合并果子TimeLimit:1000MSMemoryLimit:65535KBSubmissions:2783Accepted:342Description在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成
题目详情
合并果子 C/C++ 最好能详细点 其他貌似要超时
合并果子
Time Limit:1000MS Memory Limit:65535KB
Submissions:2783 Accepted:342
Description
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了.多多在合并果子时总共消耗的体力等于每次合并所耗体力之和.因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力.假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值.例如有3种果子,数目依次为1,2,9.可以先将1、2堆合并,新堆数目为3,耗费体力为3.接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12.所以多多总共耗费体力=3+12=15.可以证明15为最小的体力耗费值.
Input
输入包括两行,第一行是一个整数n(1
合并果子
Time Limit:1000MS Memory Limit:65535KB
Submissions:2783 Accepted:342
Description
在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了.多多在合并果子时总共消耗的体力等于每次合并所耗体力之和.因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力.假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值.例如有3种果子,数目依次为1,2,9.可以先将1、2堆合并,新堆数目为3,耗费体力为3.接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12.所以多多总共耗费体力=3+12=15.可以证明15为最小的体力耗费值.
Input
输入包括两行,第一行是一个整数n(1
▼优质解答
答案和解析
主要是排序,保证序列始终是从小到大,合并了堆后要再次排序,因为很可以合并堆后的堆比其余的堆的其中几个要大.
#include
using namespace std;
void px(int *,int);
void main()
{
int n,sum=0;//n是堆数,sum是体力总量
cin>>n;
int *a=new int[n];
for(int i=0;i>a[i];
px(a,n);//先排序
i=1;
int k=n;//k来保存n的值
while(n!=1)
{
sum+=a[i]+a[i-1];//当前耗费的体力
a[i]=a[i]+a[i-1];
i++;//a[i]代表最近一次合并的堆的果子数目
n--;//堆数少了1
px(a,k);//还要再排一次续,保证序列始终是从小到大的,这为了简便,还是按n个数排序
}
cout
#include
using namespace std;
void px(int *,int);
void main()
{
int n,sum=0;//n是堆数,sum是体力总量
cin>>n;
int *a=new int[n];
for(int i=0;i>a[i];
px(a,n);//先排序
i=1;
int k=n;//k来保存n的值
while(n!=1)
{
sum+=a[i]+a[i-1];//当前耗费的体力
a[i]=a[i]+a[i-1];
i++;//a[i]代表最近一次合并的堆的果子数目
n--;//堆数少了1
px(a,k);//还要再排一次续,保证序列始终是从小到大的,这为了简便,还是按n个数排序
}
cout
看了 合并果子C/C++最好能详细...的网友还看了以下:
对于复数Z1=m(m-1﹚﹢﹙m-﹚i,Z2=﹙m+1﹚﹢﹙m-1﹚i,﹙m∈R﹚大神们帮帮忙对于 2020-04-26 …
从下四个选项中选出一个画线部分发音不同的单词1A.f(i)neB.beh(i)ndC.m(i)dd 2020-05-14 …
找规律(数学)把一些英文字母按规律分成4组,现在还有4个字母D,M,Q,X请你按规律补上,其顺序依 2020-05-14 …
i"m sure you"d rather she went to schoolI"m sure 2020-05-14 …
-Jenny,would you like to come to my party on Sund 2020-05-16 …
利息理论中d(m)与i(m)的关系d=i/(1+i),那么名义贴现率d(m)和i(m)也有这种关系 2020-06-02 …
下列各项中字音不正确的一项是:()A.参(Cān)见人参(shēn)参(Cēn)差B.山脉(mài 2020-07-02 …
前辈们帮忙解释一下这个冒泡排序的每个语句的意思(标注在每句后面就行,voidmainprbub(p 2020-07-23 …
保险精算题.设m>1,按从大到小的次序排列i,i(m),d,d(m)1、设m>1,按从大到小的次序排 2020-12-05 …
如何求函数的最大值与最小值??就是数学必修一里面的内容:一般地,设函数y=f(x)的定义域为I,如果 2021-01-16 …