数据结构——优先队列
文章平均质量分 74
XDU_Skyline
Everything is over, everything is just beginning.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
例题3.3 阿格斯 UVa1203
1.题目描述:点击打开链接 2.解题思路:本题利用优先队列解决。根据题意,优先出列的是时间靠前的时间,如果当有多个事件同时发生,那么再考虑Qnum小的事件优先出列。本题有一个重要的技巧,就是每次出列后,更新一下该元素下次出列的时间,然后再次放回队列,使得优先队列中一直都是n个元素。由于只模拟前k个时间,而STL的priority_queue的出列时间复杂度是O(logN),因此本题的总时间复杂度原创 2015-03-17 18:33:09 · 825 阅读 · 0 评论 -
例题8-11 全部相加 UVa10954
1.题目描述:点击打开链接 2.解题思路:根据题意描述,可以选择如下贪心策略:每次都选择两个比较小的数,相加后的结果放回队列中,而取最小值出列正好可以运用STL的priority_queue 3.代码: #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include原创 2015-02-06 18:43:30 · 607 阅读 · 0 评论 -
习题5-16 医院设备利用 UVa212
1.题目描述:点击打开链接 2.状态及可能原因:WA;可能是输出格式不对,个人认为逻辑上应该没有大的问题。 3.代码: #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #incl原创 2015-03-28 18:19:37 · 1919 阅读 · 0 评论 -
POJ 3253 Fence Repair
1.题目描述:点击打开链接 2.解题思路:本题利用霍夫曼编码的原理解决。这道题本可以用动态规划来解决,之前已经在UVa10003上做过了这道题,不过今天才发现原来就是霍夫曼编码的变形,真的是非常巧妙。我们考察切木棍这个过程可以发现,实际上这把总长为L的木棍切割为L1,L2,L3等等我们需要的木棍是一个树状结构。那么最终的总开销就是sum{木板的长度*节点的深度}。从最优的角度考虑,最短的板对应的原创 2015-04-06 21:05:05 · 507 阅读 · 0 评论 -
HDU 5360 Hiking (2015年多校比赛第6场)
1.题目描述:点击打开链接 2.解题思路:本题利用优先队列解决,然而在这次多校的比赛时候并没有往这个角度考虑,最终要么WA要么TLE==。其实本题的贪心策略很好想:如果把题目中的人数看做数轴上的点的话,那么应该按照从0依次递增的顺序来选择区间,把符合条件的区间预先存起来,然后按照他们的终点由小到大排序,第一个就是我们要的区间,如果遇到第一个区间的终点也小于当前值,那么也将他放入ans数组,只不过原创 2015-08-06 20:52:11 · 1066 阅读 · 0 评论 -
POJ 2431 Expedition
1.题目描述:点击打开链接 2解题思路:本题利用优先队列解决。本题在思维上需要稍微灵活变通一下:如果到达第i个加油站时,把它能够提供的油量预存储到队列中,等将来真正需要加油的时候,再从队列中取出来。这就等价于在到达第i个加油站时选择了加油的措施。不过本题要求加油次数最少。这时我们可以考虑使用STL中的优先队列解决。每次都选加油量最大的那个加油站来加油。这样的贪心选择可以保证最终的加油次数是最少的原创 2015-04-06 20:00:02 · 479 阅读 · 0 评论 -
HDU 5437 Alisha’s Party (2015年长春赛区网络赛A题)
1.题目描述:点击打开链接 2.解题思路:本题是多关键字的排序题目,可以事先定义好优先级,然后利用一个优先队列来模拟“到来”和“进门”这2个过程,有2个地方需要小心:1.题目中输入的t,p需要事先排序;2.不要忘记处理最后一次开门时候的情况。 3.代码: #include #include #include #include #include #include #include #inclu原创 2015-09-14 17:19:57 · 634 阅读 · 0 评论
分享