#C09L04P07. C09.L04.动态规划入门.练习6.维修栅栏

C09.L04.动态规划入门.练习6.维修栅栏

题目描述

小 z 最近当上了农场主!不过,还没有来得及庆祝,一件棘手的问题就摆在了小z的面前。农场的栅栏,由于年久失修,出现了多处破损。栅栏是由 nn块木板组成的,每块木板可能已经损坏也可能没有损坏。小 z 知道,维修连续 m 个木板(这 m 个木板不一定都是损坏的)的费用是 sqrt(m) 。可是,怎样设计方案才能使总费用最低呢?小 zz 想请你帮帮忙。

输入格式

第一行包含一个整数 nn,表示栅栏的长度。

第二行包含 n 个由空格分开的整数(长整型范围内)。如果第 i 个数字是 0,则表示第 i 块木板已经损坏,否则表示没有损坏。

数据范围

30% 的数据中,n20n \le 20

100% 的数据中,n2500n \le 2500

输出格式

一个实数,表示最小维修费用。注意:答案精确到小数点后 3 位。

样例

9
0 –1 0 1 2 3 0 –2 0
3.000