贪心算法 POJ3253 Fence Repair
题目大意:
【贪心算法 POJ3253 Fence Repair】将一很长的木板切割成N块。每块长度分别为L1、L2、... 、LN,每次切断木板时需要的开销为这块木板的长度。
我的理解:
这道题属于贪心算法类型,在做的时候要用到哈夫曼编码。
文章图片
文章图片
代码:
#include
#include
#include
#define MAX_N 20000
using namespace std;
/**
哈夫曼树--贪心算法
思想:对于最优解来讲,最短的板应当是深度最大的叶子节点之一
*/
typedef long long ll;
int L[MAX_N];
int n;
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;
in;
for(int i = 0;
i>L[i];
}
solve();
return 0;
}
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解
- 《数据结构与算法之美》——队列
- 算法回顾(SVD在协同过滤推荐系统中的应用)
- 简谈迪克斯特拉算法