2. 石子合并问题
描述:在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。
输入:由文件input.txt提供输入数据。文件的第1行是正整数n,表示有n堆石子。第2 行有n个数,分别表示每堆石子的个数。
输入文件示例input.txt 44 4 5 9
输出:将计算结果输出到文件output.txt 中。文件的第1 行中的数是最小得分;第2 行中的数是最大得分。
输出文件示例 output.txt4354
一道简单的C++编程题 求解
答案:1 悬赏:0 手机版
解决时间 2021-07-17 17:41
- 提问者网友:轻浮
- 2021-07-16 19:56
最佳答案
- 五星知识达人网友:独行浪子会拥风
- 2021-07-16 20:41
这个题分两部分(最小得分,最大得分),思路都比较简单:
求最小得分时:找两堆相加和最小的来合并,,
如:4 4 5 9 //相临两堆中, 4 4 合并和最小,合并结果如下
8 5 9 //继续找和最小的两堆,8 5。。。结果如下;
13 9 //继续。。。
22 //结果 43
求最大得分时,相应的,,每轮都需要找出和最大的两堆。
楼主可以用循环链表实现,需要用到的操作:创建,遍历,删除……
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯