题目大意:
  给你一堆权值,求这些权值建成哈夫曼树后的WPL。

思路:
  哈夫曼树的WPL等于各非叶子结点权值之和。
  所以直接贪心模拟构建哈夫曼树的过程。
  先把所有的权值放在一个堆中,然后每次取里面最小的两个数加到答案中,并将他们的和重新放到堆中。
  整个过程并不需要把树存下来。

 #include<cstdio>
#include<cctype>
#include<ext/pb_ds/priority_queue.hpp>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'';
while(isdigit(ch=getchar())) x=(((x<<)+x)<<)+(ch^'');
return x;
}
__gnu_pbds::priority_queue<int,std::greater<int> > q;
int main() {
int n;
while(~scanf("%d",&n)) {
q.clear();
for(register int i=;i<=n;i++) {
q.push(getint());
}
int ans=;
for(register int i=;i<n;i++) {
int tmp=q.top();
q.pop();
tmp+=q.top();
q.pop();
ans+=tmp;
q.push(tmp);
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. java中Class对象详解和类名.class, class.forName(), getClass()区别
  2. webdriver+python 对三大浏览器的支持
  3. python会什么比c慢
  4. css技巧之如何实现ul li边框重合
  5. 一张地图,告诉你NodeJS命令行调试器语句
  6. RequireJs加载Codemirror,配合AngularJS的坑
  7. R语言︱list用法、批量读取、写出数据时的用法
  8. 刀片服务器和磁盘阵列卡(RAID)技术---永和维护
  9. vue-cli3 中跨域解决方案
  10. flutter 主题切换
  11. WS_窗口风格常量
  12. CentOS配置apache多站点设置
  13. ajax 提交数组 泛型集合
  14. js对象原型prototype
  15. Vim替换查找
  16. MYSQL中动态行数据转列数据
  17. JVM探秘2--详解内存溢出OutOfMemoryError异常
  18. Redis 的 5 种数据结构
  19. 【转】HTTP学习---图解HTTP[三次握手&amp;&amp;ISO模型]
  20. 62. 用流程自带的打印功能,IE浏览器打印出来是空白

热门文章

  1. SDUT 3918
  2. 【洛谷 P3648】 [APIO2014]序列分割 (斜率优化)
  3. 【leetcode 简单】第四十一题 Excel表列序号
  4. Django之利用ajax实现图片预览
  5. Tslib触摸屏官网【转】
  6. MySQL创建相同表和数据命令
  7. 在Nginx服务器上屏蔽IP
  8. Machine Learning系列--判别式模型与生成式模型
  9. 工作当中遇到的ssh错误
  10. zookeeper客户端连接报错