贪心算法 POJ3253 Fence Repair
来源:互联网 发布:幸运28网站源码2016 编辑:程序博客网 时间:2024/06/05 11:23
题目大意:
将一很长的木板切割成N块。每块长度分别为L1、L2、... 、LN,每次切断木板时需要的开销为这块木板的长度。
我的理解:
这道题属于贪心算法类型,在做的时候要用到哈夫曼编码。
代码:
#include <iostream>#include <cstdio>#include <algorithm>#define MAX_N 20000using 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;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--; }cout<<ans<<endl;}int main(){freopen("D:/OJ/挑战程序设计竞赛/FenceRepair.txt","r",stdin);cin>>n;for(int i = 0;i<n;i++){cin>>L[i];}solve();return 0;}
阅读全文
0 0
- 贪心算法 POJ3253 Fence Repair
- poj3253 Fence Repair( 贪心 )
- POJ3253 Fence Repair(贪心)
- poj3253 Fence Repair 贪心
- POJ3253-贪心-Fence Repair
- POJ3253 Fence Repair (贪心)
- POJ3253 Fence Repair 小顶堆+贪心
- POJ3253-Fence Repair-贪心-哈夫曼树
- POJ3253 Fence Repair 贪心法 哈夫曼树
- 【POJ3253】Fence Repair(优先队列+贪心)
- poj3253 Fence Repair 贪心/优先队列
- POJ3253 Fence Repair(贪心,哈夫曼树)
- POJ3253 Fence Repair
- poj3253 Fence Repair
- poj3253 Fence Repair
- poj3253 Fence Repair---赫夫曼树
- poj3253 Fence Repair
- POJ3253 Fence Repair
- 构造拷贝构造的N种调用情况
- 编程题——二叉树和的路径
- HTML2
- C语言字符串相关操作总结
- OpenCV获取摄像头数据并显示在窗口里 Python实现
- 贪心算法 POJ3253 Fence Repair
- The MRC database dictionary之MRC_words
- SQLite与Android的数据交互
- Quartz 入门(1)
- CameraDemo
- Transaction rolled back because it has been marked as rollback-only解决方案
- 匿名组合-golang
- JAVAWEB开发之redis学习(八)——redis事务
- 字节流/输入输出