早教吧 育儿知识 作业答案 考试题库 百科 知识分享

合并石子(任意)(c++)在操场上摆放着一行石头,由n堆组成.有位姓孙的小胖有一项工作,就是要将石子有次序地合并成一堆.规定每只能选任意(暂时不考虑相邻)的2堆石子合并成新的一堆,并

题目详情
合并石子(任意)(c++)
在操场上摆放着一行石头,由n堆组成.有位姓孙的小胖有一项工作,就是要将石子有次序地合并成一堆.规定每只能选任意(暂时不考虑相邻)的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分.试设计一个算法,计算出将n堆石子合并成一堆的最小得分.
输入格式
输入数据的第1 行是正整数n,1
▼优质解答
答案和解析
不考虑相邻简单.只要每次取数列中最小的两个合并一下就行了
1 2 3 4 5 -->(1+2) 3 4 5 =3 3 4 5--> (3+3) 4 5=6 4 5 --> 6 (4+5) =6 9 -->15
0 + 3 + 6 + 9 + 15 =33