试题描述
|
农夫约翰为了修理栅栏,要将一块很长的木板切割成N块。准备切成的木板长度为L1,L2,L3……LN,未切割前木板的长度恰好为切割后木板长度的总和。每次切断木板时,需要的开销为这块木板的长度。请求出按照目标要求将木板切割完的最小开销是多少?例如长度为21的木板切割成长度为13和8,开销为21;把长度为13的木板切割成5和8,则开销为13,所以将长度为21的木板切割成8,5,8的三块,开销是34.
|
输入
|
第一行仅一个正整数N,第二行有N个正整数,两两之间用一个空格分隔。
|
输出
|
符合题目要求的一个正整数
|
输入示例
|
3
8 5 8 |
输出示例
|
34
|
其他说明
|
数据范围:N<=100000,Li<=10000 。
|
如果将它看成一个二叉树,那么要想花销最少,就得让二叉树的层数尽量少。第一种方法可以用优先队列实现,第二种可以通过建树实现。