编程算法 - 篱笆修理(Fence Repair) 代码(C)
篱笆修理(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)相关推荐
- 贪心算法-----poj 3253 Fence Repair(切木板)
Description Farmer John wants to repair a small length of the fence around the pasture. He measures ...
- POJ 3253 Fence Repair(修篱笆)
POJ 3253 Fence Repair(修篱笆) Time Limit: 2000MS Memory Limit: 65536K [Description] [题目描述] Farmer Joh ...
- Fence Repair (二叉树求解)(优先队列,先取出小的)
题目链接:http://poj.org/problem?id=3253 Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Sub ...
- Fence Repair(不会优先队列的看过来)
Fence Repair(不会优先队列的看过来) Farmer John wants to repair a small length of the fence around the pasture. ...
- BZOJ 1724: [Usaco2006 Nov]Fence Repair 切割木板
题目 1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Description Farmer ...
- java转换ip地址格式转换_Java编程IP地址和数字相互转换代码示例
最近才知道,将ip地址转换成十进制.八进制.十六进制同样可以访问网站. IP转为数字(第二种算法.用左移.按位或实现.效率更高.): public long ipToLong(String ipAdd ...
- [BZOJ1724][Usaco2006 Nov]Fence Repair 切割木板
1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 1272 Solved: ...
- 数据结构与算法必备的 50 个代码实现
点击上方"AI有道",选择"置顶"公众号 重磅干货,第一时间送达 数据结构和算法是程序员的内功心法和基本功.无论是人工智能还是其它计算机科学领域,掌握扎实的数据 ...
- 多项式相乘快速算法原理及相应C代码实现
最近认真研究了一下算法导论里面的多项式乘法的快速计算问题,主要是用到了FFT,自己也实现了一下,总结如下. 1.多项式乘法 两个多项式相乘即为多项式乘法,例如:3*x^7+4*x^5+1*x^2+5与 ...
最新文章
- 淘宝海量数据库之二:一致性选择
- linux shell中 if else以及大于、小于、等于逻辑表达式
- L1正则化与数据分布的关系
- kie-api_KIE-WB / JBPM控制台Ng –配置
- 三、操作系统——生产者-消费者问题(两个同步一个互斥)
- 虚拟机的磁盘扩大超过2T,发现超过2T的这部分无分区
- android仿winphone进度指示器的实现
- Matlab 实现信号滤波
- CG资源网 - Maya教程
- 2016新网商年度盛典,千机网解构新零售
- 2020年最新UI设计基础入门教程
- Elasticsearch 7.13 删除文档后如何释放存储空间、手动执行forcemerge操作
- CSDN 创始人蒋涛:开源吞噬世界,得开发者得天下
- 与卡耐基梅隆大学博士交流笔记
- 20寸JAVA16速自行车_健康成长 快乐骑行 JAVA16/20寸儿童自行车介绍
- 写在2020.11.19 周四晚上
- 详解C语言实现植物大战僵尸阳光9999
- linux 二次封装 释放,Linux必学的60个命令(二)
- 教育类小程序APP开发
- python登录面向对象_python基础 面向对象一
热门文章
- php计算器等号没反应,为什么按等号没有反应?
- 苹果CMS10 资源网模板
- WHMCS v8.0 bate1开心版源码
- 推荐几个好的域名交易站点
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(一)让物体动起来①
- 必须掌握的八个cmd命令行
- CNNIC公告称半个月已处理不良网站域名万例
- html照片从模糊到清晰的渐变加载显示方法
- Objective-C 2.0 with Cocoa Foundation--- 7,对象的初始化以及实例变量的作用域
- 统计学习方法-李航(4)