poj3253:http://poj.org/problem?id=3253,简单的哈夫曼问题
注意此题的数值范围,最后结果用unsigned int或long保存,不然会数据会溢出,另外,注意n=1时,花费为0。
这里优先队列的用法,可以设置比较函数,重载()运算符,还有一种用来比较结构体的方法,重载>操作符。
#include <iostream> #include <fstream> #include <queue> using namespace std; struct cmp { bool operator() (unsigned int x,unsigned int y) { return x>y; } }; priority_queue<unsigned int,vector<unsigned int>,cmp> q; unsigned int ans=0; unsigned int total=0; void doit() { unsigned int sum=0; while(!q.empty()) { sum+=q.top(); q.pop(); if(!q.empty()) { sum+=q.top(); q.pop(); if(sum!=total) q.push(sum); } ans+=sum; sum=0; } } int main() { unsigned int n; // ifstream cin("1.txt"); cin>>n; if(1==n) { ans=0; } else { for(unsigned int i=0;i<n;i++) { unsigned int temp; cin>>temp; q.push(temp); total+=temp; } doit(); } cout<<ans<<endl; return 0; }
注意此题的数值范围,最后结果用unsigned int或long保存,不然会数据会溢出,另外,注意n=1时,花费为0。
这里优先队列的用法,可以设置比较函数,重载()运算符,还有一种用来比较结构体的方法,重载>操作符。
struct node { int x, y; friend bool operator < (node a, node b) { return a.x > b.x; //结构体中,x小的优先级高 } }; priority_queue<node>q;//定义方法
发表评论
-
2011清华考研机试题2
2011-08-09 14:56 935http://ac.jobdu.com/problem.php ... -
2011清华考研机试题1
2011-08-09 14:40 675题目描述 http://ac.jobdu.com/proble ... -
考研清华2011复试机考第三题
2011-08-09 13:51 1534题目描述 在某条线路上有N个火车站,有三种距离的路程,L1, ... -
poj3259 spfa解法
2011-08-08 19:59 1390同上题,不过改的spfa算法,注意每个节点进入队列的次数至多为 ... -
poj3259 bellman水题
2011-08-08 17:04 996poj3259http://poj.org/problem?i ... -
acm题目常用的预处理
2011-08-08 15:26 1201#include<iostream> #in ... -
poj1860
2011-08-08 14:06 739poj1860http://poj.org/problem?i ... -
water~9
2011-08-06 18:01 460poj2109http://poj.org/problem?i ... -
water~8
2011-08-06 17:22 647poj2027http://poj.org/problem?i ... -
water~7
2011-08-06 17:15 601poj1328http://poj.org/problem?i ... -
water~6
2011-08-06 14:27 757poj1088http://poj.org/problem?i ... -
water~5
2011-08-06 14:24 661poj1003http://poj.org/problem?i ... -
water~4
2011-08-06 14:09 699poj1004http://poj.org/problem?i ... -
water~3
2011-08-06 13:59 564poj2159http://poj.org/problem?i ... -
water~2
2011-08-06 12:10 564poj3299http://poj.org/problem?i ... -
water~1
2011-08-06 10:35 671poj1503http://poj.org/problem?i ... -
POJ3280 简单DP
2011-08-05 14:48 923poj3280:http://poj.org/problem? ...
相关推荐
标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...
这道题目在于应用哈夫曼算法 其中涉及的排序算法可以直接调用库函数中的
【标题】"POJ1523 - SPF 测试数据"是源于 Greater New York 2000 年编程竞赛中的问题H,这个题目在ACM(国际大学生程序设计竞赛)领域内颇具代表性。SPF全称为Shortest Path First,通常指的是寻找图中最短路径的一...
* 哈夫曼树:哈夫曼树是指解决问题的哈夫曼树算法,如 poj3253。 * 堆:堆是指解决问题的堆算法。 * trie 树:trie 树是指解决问题的 trie 树算法,如 poj2513。 四、简单搜索 简单搜索是指解决问题的简单搜索...
* 哈夫曼树:例如 poj3253。 * 堆:例如 poj2513。 * trie 树:例如 poj2513。 4. 简单搜索: * 深度优先搜索:例如 poj2488、poj3083、poj3009、poj1321、poj2251。 * 广度优先搜索:例如 poj3278、poj1426、...
- 堆:如二叉堆,用于实现优先队列,如`poj3253`。 - 树:如二叉树和AVL树,用于存储和检索有序数据,如`poj2513`。 - **简单搜索** - 深度优先搜索:如`poj2488, poj3083`。 - 广度优先搜索:如`poj3278, poj...
- **例题**:poj3253 - **解释**:队列和栈是两种常见的线性数据结构,用于存储和管理数据元素。 #### 5. Trie树 - **例题**:poj2513 - **解释**:Trie树(字典树)是一种用于存储和检索字符串的高效数据结构。 #...
- **哈夫曼树**:压缩编码,如poj3253。 - **堆**:如优先队列,用于实现最大值或最小值的快速访问。 - **trie树**:用于高效字符串查询,包括静态和动态构建。 4. **搜索算法**: - **深度优先搜索**:如poj...
- (poj3253):探讨如何高效地进行元素插入、删除及查找等操作。 5. **区间数据结构**: - (poj2488, poj3083, poj3009, poj1321, poj2251):区间树、线段树等数据结构,用于处理区间查询问题。 6. **字典树...
poj1035、poj3080等训练了串的操作,poj2388、poj2299等则涉及排序问题,poj2524、poj1611等是并查集的实例,poj3349、poj3274等展示了哈希表和二分查找,poj3253是哈夫曼树的题目,poj2442和poj1442则关于堆。...
- 推荐题目:[poj3253](https://vjudge.net/problem/POJ-3253) - 树状数组(Binary Indexed Tree)常用于区间加、区间查询等问题。 5. **Trie树** - 推荐题目:[poj2513](https://vjudge.net/problem/POJ-2513) ...
- poj3253 - **应用场景**:适用于数据压缩、编码问题。 **6. 堆** - **定义**:一种特殊的完全二叉树结构。 - **示例题目**: - poj2442 - **应用场景**:适用于实现优先队列、堆排序等问题。 **7. Trie 树** -...
5. **哈夫曼树**:用于压缩编码,如POJ3253。 6. **堆**:用于优先队列和部分排序问题。 7. **Trie树**:用于字符串查找和前缀匹配,分为静态建树和动态建树,如POJ2513。 ### 简单搜索 1. **深度优先搜索(DFS)**...
- **示例题目**: poj3253 - **知识点**: - **并操作**:将两个集合合并成一个集合。 - **查找操作**:查询某个元素所在的集合。 ### 四、字符串 #### 1. 字符串匹配 - **内容**: 包括KMP算法等字符串匹配算法。...
* 哈夫曼树:POJ3253 * 背包问题:POJ1837、POJ1276 * DP算法:POJ3267、POJ1836、POJ1260、POJ2533 二、图算法 * 度限制最小生成树和第K最短路:POJ1639、POJ3216、POJ2446 * 最优比率生成树:POJ2728 * 最小树形...
* 哈夫曼树:poj3253 * 堆 * Trie树:静态建树、动态建树 + poj2513 四、简单搜索 * 深度优先搜索:poj2488, poj3083, poj3009, poj1321, poj2251 * 广度优先搜索:poj3278, poj1426, poj3126, poj3087, poj3414 ...
10. 哈夫曼树(poj3253) 二、图算法 1. 度限制最小生成树和第 K 最短路(poj1639, poj3216, poj2446) 2. 最优比率生成树(poj2728) 3. 最小树形图(poj3164) 4. 次小生成树 5. 无向图、有向图的最小环 三、...
(5) 哈夫曼树:poj3253 (6) 堆 (7) trie树:poj2513 四、简单搜索 本部分涵盖了简单搜索,包括深度优先搜索、广度优先搜索和简单搜索技巧和剪枝。 (1) 深度优先搜索:poj2488, poj3083, poj3009, poj1321, poj...
5. 哈夫曼树:用于压缩编码,如poj3253。 6. 堆:优先队列实现,如poj1459。 7. Trie树:用于高效字符串查询,如poj2513。 四、简单搜索 1. 深度优先搜索(DFS):如poj2488、poj3083等。 2. 广度优先搜索(BFS):...