zoukankan      html  css  js  c++  java
  • 修篱笆

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

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

  • 相关阅读:
    观察者模式
    php中compact,extract,list函数的使用
    加密解密
    python 线程池proxypool
    python qq音乐下载
    python 网易云音乐
    python 知识点
    python 格式化 header
    python 爬取百度图片
    php 过滤掉多维数组空值
  • 原文地址:https://www.cnblogs.com/Kane-Zedak/p/4963923.html
Copyright © 2011-2022 走看看