码迷,mamicode.com
首页 > 其他好文 > 详细

修篱笆

时间:2015-11-14 11:07:32      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

试题描述
  农夫约翰为了修理栅栏,要将一块很长的木板切割成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 。

 

如果将它看成一个二叉树,那么要想花销最少,就得让二叉树的层数尽量少。第一种方法可以用优先队列实现,第二种可以通过建树实现。

修篱笆

标签:

原文地址:http://www.cnblogs.com/Kane-Zedak/p/4963923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!