https://vjudge.net/problem/POJ-3253

很经典的题,运用哈夫曼思想,想想很有道理!!

具体实现还是有点绕人,最后被long long卡了一下,看数据大小的时候单纯相乘了。。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<queue>
 4 #include<cstring>
 5 #include<algorithm>
 6 #include<cmath>
 7 #include<set>
 8 #define INF 0x3f3f3f3f
 9 typedef long long ll;
10 using namespace std;
11 int n, L[100010];
12 ll ans=0;
13 int main()
14 {
15     cin >> n;
16     for(int i = 0; i < n; i++){
17         cin >> L[i];
18     }
19     sort(L, L+n);
20     while(n > 1){
21         int mii1 = 0, mii2 = 1;//mii1指向最小,mii2指向次小
22         if(L[mii1] > L[mii2]){//保证L[mii1]<L[mii2]
23             swap(L[mii1], L[mii2]);
24         }
25         for(int i = 2; i < n; i++){//循环中的操作都是基于L[mii1]<L[mii2]指向
26             if(L[i] < L[mii1]){
27                 mii2 = mii1;
28                 mii1 = i;
29             }
30             else if(L[i] < L[mii2]){
31                 mii2 = i;
32             }
33         }
34         int t = L[mii1] + L[mii2];
35         ans += t;
36         if(mii1 == n-1){//防止这个位置和最后一个位置重叠
37             swap(L[mii1], L[mii2]);
38         }
39         L[mii1] = t;
40         L[mii2] = L[n-1];//把最后的一个移到mii2位置上,最后一个为空
41         n--;
42     }
43     cout << ans << endl;
44     return 0;
45 }

转载于:https://www.cnblogs.com/Surprisezang/p/9005969.html

poj3253 Fence Repair(贪心+哈夫曼 经典)相关推荐

  1. POJ3253 Fence Repair【哈夫曼树+优先队列】

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 48026   Accepted: 15784 De ...

  2. poj3253切割木板(哈夫曼树) 贪心【优先队列】

    Fence Repair Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 37272   Accepted: 12078 De ...

  3. [POJ3253]Fence Repair

    题目链接:http://poj.org/problem?id=3253 单调队列和优先队列(哈夫曼编码)分别实现: 1 #include <algorithm> 2 #include &l ...

  4. 1125 Chain the Ropes (25 分)【难度: 一般 / 贪心 哈夫曼树】

    https://pintia.cn/problem-sets/994805342720868352/problems/994805350316752896 用小根堆即可. #include<bi ...

  5. POJ 3253 Fence Repair 贪心

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

  6. Vijos P1097 合并果子【哈夫曼树+优先队列】

    描述 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和.可以看 ...

  7. 哈夫曼编码树的经典题目

                                                          点击打开题目链接   poj3253 Fence Repair Time Limit: 20 ...

  8. 【BZOJ4198】荷马史诗,贪心之k叉哈夫曼树

    传送门 思路: 很早以前听说过这个题 据说是一个很强的贪心(?) 然后一上来就往贪心上去想--(其实一开始知道算法不是很好,因为你不会走弯路了) 发现这玩意好像是个合并果子的模型-- 也不知道是怎么转 ...

  9. Fence Repair (poj3253)

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

最新文章

  1. SpringBoot连接Mysql数据库遇到Unable to load authentication plugin ‘caching_sha2_password解决方案
  2. lseek函数实现对打开文件的定位
  3. 悉尼大学 伦敦大学联合出品:知识蒸馏最新综述
  4. 清理buffer/cache/swap的方法梳理
  5. 【Java版】将汉字转化为gb2312编码
  6. 安卓 background的图片随着textview的大小而改变_关于CSS中的背景属性background简述...
  7. 【论文笔记】K-plet Recurrent Neural Networks for Sequential Recommendation
  8. car-like robot运动机构简析
  9. Android每日一记
  10. Hadoop生态系统常用组件导图
  11. ParticleSystem的使用
  12. 如何处理SQL Server中附加数据库时出现的错误
  13. 清理谷歌浏览器注册表_chrome注册表怎么清理_如何清理没用的chrome注册表-win7之家...
  14. 【Python-二分法-查找重复值】
  15. 版权声明--关于本人BLOG发表的带有原创标识的文章相关
  16. h5页面 请在微信客户端打开链接_完美解决 请在微信客户端打开链接
  17. 中国数据中心改造市场趋势报告、技术动态创新及市场预测
  18. 盘点Apache的11个顶级项目
  19. NodeJS Warning: Accessing non-existent property ‘padLevels‘ 解决办法
  20. 祭奠自己逝去的三年时光

热门文章

  1. Vue 项目调试总结
  2. Kafka笔记-Spring Boot消费者构造
  3. Qt文档阅读笔记-OpenGL Window Example的解析笔记
  4. python3.0如何画表格_Python图表绘制工具:Matplotlib_Part 3
  5. chart.js x轴显示不全_机床大讲堂第67讲——基于FANUC系统的数控铣床增加第四轴的方法...
  6. 2021年河南省高考成绩位次查询,2021年河南高考分数一分一段位次表,河南高考个人成绩排名查询方法...
  7. java 分享巧克力_[leetcode 双周赛 11] 1231 分享巧克力
  8. linux audio A2B
  9. java为学生s1的age属性_求解java程序,题目如下
  10. python文本内容怎么转换成字典_怎么把照片上的文字转换成文本?照片转换文字神器来了...