信息学竞赛

练习与作业

特色教育 >>信息学竞赛 >>练习与作业

动态规划练习一

来源:程军康|编辑日期:2009-11-06 12:06:59|点击数: |发布:55

石子合并

在一个圆形操场的四周摆放着N堆石子(N<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分.编一程序,由文件读入堆栈数N及每堆栈的石子数(<=20).

(!)选择一种合并石子的方案,使用权得做N1次合并,得分的总和最小;

(2)选择一种合并石子的方案,使用权得做N1次合并,得分的总和最小;

输入数据:

第一行为石子堆数N;

第二行为每堆的石子数,每两个数之间用一个空格分隔.

输出数据:

从第一至第N行为得分最小的合并方案.N+1行是空行.从第N+2行到第2N+1行是得分最大合并方案.每种合并方案用N行表示,其中第i(1<=i<=N)表示第i次合并前各堆的石子数(依顺时针次序输出,哪一堆先输出均可).要求将待合并的两堆石子数以相应的负数表示.

输入输出范例:

输入:

4

上一篇:

下一篇: