篱笆修理(Fence Repair) 代码(C)

本文地址: http://blog.csdn.net/caroline_wendy

题目: 把一块木板切成N块, 每次切两块, 分割的开销是木板长度, 求将木板分割完的最小开销.

即霍夫曼编码(Huffman).

贪心算法, 相似二叉树型结构, 最短板和次短板是兄弟结点, 选取两个最小木板, 最后进行分割, 合并两个最小木板, 依次递推.

代码:

/** main.cpp**  Created on: 2014.7.17*      Author: spike*//*eclipse cdt, gcc 4.8.1*/#include <stdio.h>
#include <limits.h>#include <utility>
#include <queue>
#include <algorithm>using namespace std;class Program {typedef long long ll;static const int MAX_N = 10000;int N=5, L[MAX_N]={1,2,3,4,5};public:void solve() {ll ans = 0;while (N>1) {int mii1 = 0, mii2 = 1;if (L[mii1]>L[mii2]) swap(mii1, mii2);for (int i=2; i<N; ++i) {if (L[i]<L[mii1]) {mii2 = mii1;mii1 = i;} else if (L[i]<L[mii2]) {mii2 = i;}}int t = L[mii1]+L[mii2];ans += t;if (mii1 == N-1) swap(mii1, mii2);L[mii1] = t;L[mii2] = L[N-1];N--;}printf("result = %lld\n", ans);}
};int main(void)
{Program P;P.solve();return 0;
}

输出:

result = 33

编程算法 - 篱笆修理(Fence Repair) 代码(C)相关推荐

  1. 贪心算法-----poj 3253 Fence Repair(切木板)

    Description Farmer John wants to repair a small length of the fence around the pasture. He measures ...

  2. POJ 3253 Fence Repair(修篱笆)

    POJ 3253 Fence Repair(修篱笆) Time Limit: 2000MS   Memory Limit: 65536K [Description] [题目描述] Farmer Joh ...

  3. Fence Repair (二叉树求解)(优先队列,先取出小的)

    题目链接:http://poj.org/problem?id=3253 Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Sub ...

  4. Fence Repair(不会优先队列的看过来)

    Fence Repair(不会优先队列的看过来) Farmer John wants to repair a small length of the fence around the pasture. ...

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

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

  6. java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例

    最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...

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

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

  8. 数据结构与算法必备的 50 个代码实现

    点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 数据结构和算法是程序员的内功心法和基本功.无论是人工智能还是其它计算机科学领域,掌握扎实的数据 ...

  9. 多项式相乘快速算法原理及相应C代码实现

    最近认真研究了一下算法导论里面的多项式乘法的快速计算问题,主要是用到了FFT,自己也实现了一下,总结如下. 1.多项式乘法 两个多项式相乘即为多项式乘法,例如:3*x^7+4*x^5+1*x^2+5与 ...

最新文章

  1. 淘宝海量数据库之二:一致性选择
  2. linux shell中 if else以及大于、小于、等于逻辑表达式
  3. L1正则化与数据分布的关系
  4. kie-api_KIE-WB / JBPM控制台Ng –配置
  5. 三、操作系统——生产者-消费者问题(两个同步一个互斥)
  6. 虚拟机的磁盘扩大超过2T,发现超过2T的这部分无分区
  7. android仿winphone进度指示器的实现
  8. Matlab 实现信号滤波
  9. CG资源网 - Maya教程
  10. 2016新网商年度盛典,千机网解构新零售
  11. 2020年最新UI设计基础入门教程
  12. Elasticsearch 7.13 删除文档后如何释放存储空间、手动执行forcemerge操作
  13. CSDN 创始人蒋涛:开源吞噬世界,得开发者得天下
  14. 与卡耐基梅隆大学博士交流笔记
  15. 20寸JAVA16速自行车_健康成长 快乐骑行 JAVA16/20寸儿童自行车介绍
  16. 写在2020.11.19 周四晚上
  17. 详解C语言实现植物大战僵尸阳光9999
  18. linux 二次封装 释放,Linux必学的60个命令(二)
  19. 教育类小程序APP开发
  20. python登录面向对象_python基础 面向对象一

热门文章

  1. php计算器等号没反应,为什么按等号没有反应?
  2. 苹果CMS10 资源网模板
  3. WHMCS v8.0 bate1开心版源码
  4. 推荐几个好的域名交易站点
  5. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(一)让物体动起来①
  6. 必须掌握的八个cmd命令行
  7. CNNIC公告称半个月已处理不良网站域名万例
  8. html照片从模糊到清晰的渐变加载显示方法
  9. Objective-C 2.0 with Cocoa Foundation--- 7,对象的初始化以及实例变量的作用域
  10. 统计学习方法-李航(4)