Fence Repair(挑战程序设计竞赛2.2)
来源:互联网 发布:淘宝店铺设置地址无效 编辑:程序博客网 时间:2024/06/16 04:57
木板切割,一开始以为是直接用贪心算法,每次将最大的那块单独分离开,思路错误。
实际上,它的模型是哈夫曼树问题,计算除根节点以外所有节点权值之和的最小值,也可以看做叶子节点的带权路径长度。
用优先队列可以使它每次出来两个最小的长度,将这两个长度加在最终消耗上,再把他们的和放回优先队列中。
#include"cstdio"#include"algorithm"#include"vector"#include"queue"using namespace std;int L[20005];int main(){ int n; scanf("%d",&n); priority_queue<int,vector<int>,greater<int> >pque; for(int i=0;i<n;i++) { scanf("%d",&L[i]); pque.push(L[i]); } int ans=0; while(pque.size()>1) { int a,b; a=pque.top(); pque.pop(); b=pque.top(); pque.pop(); ans=ans+a+b; pque.push(a+b); } printf("%d\n",ans); return 0;}
0 0
- Fence Repair(挑战程序设计竞赛2.2)
- [挑战程序设计竞赛] POJ 3253 - Fence Repair
- 《挑战程序设计竞赛》 P77 题目: Fence Repair 用优先队列实现
- 程序设计:Fence Repair
- 《挑战程序设计竞赛》 读后感
- 挑战程序设计竞赛:三角形
- 《挑战程序设计竞赛》 读后感
- 挑战程序设计竞赛(1)
- 挑战程序设计竞赛p42(贪心)
- ACM Ball(挑战程序设计竞赛)
- ACM Hopscotch(挑战程序设计竞赛)
- ACM Osenbei(挑战程序设计竞赛)
- ACM Packets(挑战程序设计竞赛)
- 挑战程序设计竞赛---POJ.2686
- 挑战程序设计竞赛---POJ.3233
- 水洼 POJ2386 挑战程序设计竞赛
- 挑战程序设计竞赛:0101抽签
- 挑战程序设计竞赛笔记_P55
- Java堆内存Heap与非堆内存Non-Heap简介和设置
- Java 8系列之重新认识HashMap
- Linux系统管理
- 5 Shuffling Machine
- 内存寻址、计算机组成原理等~
- Fence Repair(挑战程序设计竞赛2.2)
- CSS:设置边框和背景
- Android应用查询联系人
- 华为机试----最高分是多少(线段树)
- Apache 高并发 性能优化
- fedora24 安装网易音乐 酷我音乐
- Python系列脚本
- iOS 10 升级后无法真机测试 Could not find Developer Disk Image
- Android性能优化工具