题目:http://poj.org/problem?id=3253

AC代码(C++):

#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <queue>
#include <math.h>
#include <string>
#include <string.h>
#include <bitset>#define INF 0xfffffff
#define MAXN 50005using namespace std;struct cmp{bool operator ()(long long &a,long long &b){return a>b;}
};int main(){int n;long long ans = 0;priority_queue<long long,vector<long long>,cmp>q;cin>>n;long long tmp;for(int i = 0; i < n; i++){scanf("%lld",&tmp);q.push(tmp);}for(int i = 0; i < n-1; i++){tmp = q.top();q.pop();tmp += q.top();q.pop();q.push(tmp);ans += tmp;}cout<<ans;
}

总结: 这是一道关于哈夫曼树的题目. 一般做法是将输入放进数组里, 每次对数组排序, 取出(并删除)数组中最小的两个数, 相加并插入回数组中, 循环操作直到数组中只剩一个元素. 那么答案就是每次循环时插入的那个数的和. 如果按照普通做法来做, 每次循环都要进行排序, 会浪费太多时间导致TLE. 而优先队列正好解决了这个问题, 数组在插入时就会自动排好序, 耗时只有63ms.

POJ 3253.Fence Repair相关推荐

  1. POJ 3253 Fence Repair(修篱笆)

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

  2. POJ 3253 Fence Repair C++ STL multiset 可解

    Fence Repair Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 53106 Accepted: 17508 Descri ...

  3. POJ 3253 -- Fence Repair

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 55661   Accepted: 18331 De ...

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

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

  5. POJ 3253 Fence Repair 贪心

    每次合并选最短的两块木板,用优先队列优化. //#pragma comment(linker, "/STACK:1024000000,1024000000") #include&l ...

  6. POJ No. 3253 Fence Repair

    POJ No. 3253 Fence Repair 官方地址 题目 农夫约翰为了修理栅栏,要将一块很长的木板切割成N块.准备切成的木板的长度为L1.L2.-.LN,未切割前木板的长度恰好为切割后木板长 ...

  7. POJ 3253 - Fence Repai ( 优先队列 )

    题意 切割木板, 比如一根长21的木板要切割成5, 8, 8的三块, 每次切割花费的金额为两断的长度. 比如先把21切成16和5, 花费21元, 再把16切成8和8, 花费16元, 总计消费37元. ...

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

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

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

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

  10. 老BOJ 07 Fence Repair

    Fence Repair Accept:199     Submit:784 Time Limit:1000MS     Memory Limit:65536KB Description Farmer ...

最新文章

  1. 深度|10分钟读懂阿里巴巴高级专家在Flutter Live2018的分享
  2. C++ vector的释放
  3. 【填坑中】学生信息管理系统
  4. Align and Prompt:SalesforceANU提出ALPRO,进行细粒度的视频文本对齐!代码已开源!...
  5. 基于OPENldap搭建postfix 虚拟用户
  6. 拼多多公布新iPhone SE补贴后价格:2899元起;BOSS直聘回应“App崩了”;Chrome 新测试版发布|极客头条...
  7. 《数字图像处理 冈萨雷斯》数字图像基础——学习笔记
  8. ECharts 饼图指定颜色显示
  9. SLE12 Server 在线安装MySQL Server
  10. 酵素果冻真的能减肥吗?
  11. 从七桥问题开始:全面介绍图论及其应用
  12. CSS基础(P45-P65)
  13. 微信小程序轨迹回放实现及遇到的坑
  14. Altium Designer18之修改画图光标大小
  15. JS根据日期计算年龄
  16. Hadoop/Hive-学习笔记【中级篇】
  17. Java移位运算符不外乎就这三种
  18. 基于ROS的qbo机器人
  19. 访问和更新Orkut数据
  20. effective morden c++ 3

热门文章

  1. TopFormer 新的语义分割Transformer 结构
  2. 图像处理--最大内接圆
  3. java 合并两个音频_如何利用音乐合成软件将多段音频合并为一段?快速合并音频的方法...
  4. CGAL:Win10 + VS2017 编译 CGAL 5.2
  5. 寻路大数据:海量数据与大规模分析
  6. 网页媒体播放利器 - JW Player使用心得
  7. 电子签章系统如何无代码接入第三方应用
  8. Photoshop CS6 破解
  9. SpringBoot:yml文件详解
  10. lisp 天正标高_天正AutoCAD技巧看你知多少