Libre OJ #10147. 「一本通 5.1 例 1」石子合并

发布时间 2023-05-01 08:53:43作者: 腾云今天首飞了吗

题意

\(n\) 堆石子绕圆形操场排放,现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分。
请编写一个程序,读入堆数 \(n\) 及每堆的石子数,并进行如下计算:
选择一种合并石子的方案,使得做 \(n-1\) 次合并得分总和最大。
选择一种合并石子的方案,使得做 \(n-1\) 次合并得分总和最小。

算是一个典例吧。
题目中询问最大最小值,对这两个问题分别dp即可。
显然,题目中的石堆环就相当于凸多边形,而石堆则相当于顶点。当你将相邻的石堆合并时,剩下的石堆是互不干扰的。这就是一个典型的凸多边形模型。
考虑到石堆是环形放置的,因此需要破环为链,将环多复制几次,最后统计答案时注意区间长度即可。

代码先咕一咕。