木板长为:21

输入:

N=3

L={8,5,8}

输出:

34

由于木板的切割顺序不确定,自由度很高.首先,切割的方法可以参见二叉树,每一个叶子节点就对应了切割出的一块块木板.叶子节点的深度就对应了为了得到对应木板所需的切割次数,开销的合计就是个叶子节点的

木板的长度*节点的深度

的总和.

最短的板与次短板的节点应当是兄弟节点

 1 typedef long long ll;
 2
 3 int N,L[MAX];
 4
 5 void solve()
 6 {
 7     ll ans=0;
 8     //直到计算到木板为1块时为止
 9     while(N>1){
10         int mii1=0,mii2=1;
11         if(L[mii1]>L[mii2])  swap(mii1,mii2);
12
13         for(int i=2; i<N; i++){
14             if(L[i]<L[mii1]){
15                 mii2=mii1;
16                 mii1=i;
17             }
18             else if(L[i]<Lmii2){
19                 mii2=i;
20             }
21         }
22         //将两块板拼合
23         int t=L[mii1]+L[mii2];
24         ans+=t;
25
26         if(mii1 == N-1)  swap(mii1.mii2);
27         L[mii1]=t;
28         L[mii2]=L[N-1];
29         N--;
30     }
31     printf("%d\n"ans);
32 }

<<挑战程序设计竞赛>>读后感

转载于:https://www.cnblogs.com/wangmengmeng/p/5226765.html

切割木板 (贪心)相关推荐

  1. 1724: [Usaco2006 Nov]Fence Repair 切割木板( 贪心 )

    倒过来看 , 每次总是选择最短的两块木板合并 , 用heap维护 ------------------------------------------------------------------- ...

  2. poj3253切割木板(哈夫曼树) 贪心【优先队列】

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 37272   Accepted: 12078 De ...

  3. [BZOJ1724][Usaco2006 Nov]Fence Repair 切割木板

    1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1272  Solved: ...

  4. BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板

    题目 1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec  Memory Limit: 64 MB Description Farmer ...

  5. [Usaco2006 Nov] Fence Repair 切割木板

    Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1356  Solved: 714 [Submit][Status][Discuss] Descripti ...

  6. bzoj1724[Usaco2006 Nov]Fence Repair 切割木板*

    bzoj1724[Usaco2006 Nov]Fence Repair 切割木板 题意: FJ需要n块木板,第i块木板长度为ai.但他只有一块长度为sigma(i,1,n)ai的木板.每切一次的代价为 ...

  7. bzoj1724【Usaco2006 Nov】Fence Repair 切割木板

    1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 920  Solved: 4 ...

  8. poj3253求切割木板开销最少是多少, 赫夫曼编码

    /* poj3252: 农夫为修理栅栏,要将一块很长的木板切成N块,准备切成的木板的长度为L1,L2,L3--Ln.未切割木板之前的长度正好是是要切割的总长度. 每次切断木板时,需要的开销为这块木板的 ...

  9. 木板切割问题——贪心

    一.问题引入 农夫约翰为了修理栅栏,要将一块很长的木块切成N块.准备切成的长度分别是L1.L2...,LN,未切割前的木板长度切好为切割后木板长度的总和.每次切断木板时的开销是这块木板的长度.(1 ≤ ...

最新文章

  1. python 密度 语音_Python+sklearn机器学习应该了解的33个基本概念
  2. Druid:一个用于大数据实时处理的开源分布式系统——大数据实时查询和分析的高容错、高性能开源分布式系统...
  3. Data Guard搭建困境突围(一)
  4. c语言for循环加法,BigDecimal 在for循环中相加注意事项
  5. 使用Github搜索开源项目
  6. MySQL创建用户(CREATE USER)
  7. 全球及中国矿棉板行业运营能力状况与十四五规模预测报告2022年
  8. MacOS中安装OpenCV
  9. 惊人体积,无码改造,黑月V1.7.4增强版[20110810]
  10. 单身的原因终于找到了!原来是这几个......
  11. 摘抄自知乎的redis相关
  12. 阿里Java面试答案【283页PDF文档免费领】
  13. Openresty 与 Tengine
  14. vue 插值表达式,v-cloak,v-text,v-html,以及v-bind,v-on
  15. VirtualBox安装教程(Win10)含软件安装包
  16. 关于redis (error) CLUSTERDOWN Hash slot not served
  17. 电视剧《大秦赋》最近很火!于是我用Python抓取了“相关数据”,发现了这些秘密.........
  18. JavaWeb宿舍管理系统环境搭建运行教程
  19. 物联网竞赛-LoRa和NB-IOT模块学习知识汇总
  20. 在 win7 上简单搭建ftp服务器

热门文章

  1. (六)Python查询12306余票:升级版-----图形化界面代码
  2. ubuntu快捷复制粘贴
  3. docker build 时出现no space left on device解决方法
  4. html5 刮刮乐 源码,HTML5 canvas实现刮刮乐功能
  5. net stop mysql 服务名无效
  6. NatureProtocols:使用MicrobiomeAnalyst统计和功能分析微生物组数据
  7. 统信UOS提示系统磁盘空间不足,磁盘扩容
  8. OpenCV-Python (官方)中文教程(部分三)
  9. 【leetcode】 剑指 Offer学习计划(java版本含注释)(上)
  10. 网络爬虫,淘宝API商品详情测试(抓取详情数据)