[动态规划]石子合并问题
https://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Contest/contestproblem/cid/3016/pid/1729 石子合并问题 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。 对于给定n堆石子,计算合并成一堆的最小得分和最大得分。 Input 输入数据的第1行是正整数n,1≤n≤100,表示有n堆石子。第二行有n个数,分别表示每堆石子的个数。 Output 输出数据有两行,第1行中的数是最小得分,第2行中的数是最大得分。 Sample Input 4 4 4 5 9 Sample Output 43 54 算法考试考完了(题目有点简单侥幸AK..),但这个问题当时困扰我了很久,网上解答的很模糊,因此还是在这里记录一下吧。这题的难点是:如果将环形转换为直线(直线的网上有很多解答,这里不做赘述)。其核心思想就是:通过将数量变为 2n-1 来转换成直线问题。当时看到这几行字困惑了很久,一直不太理解,但之后画图就懂了。 1.