摘要: 思路详见之前的贪心专题,用优先队列来代替之前的插入排序,效率为O(nlogn) 1 #include 2 #include 3 #include 4 using namespace std; 5 const int MAXN=20000+5; 6 int l[MAXN]; 7 8 int main... 阅读全文
posted @ 2015-07-14 11:20 iiyiyi 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 解题方法详见《挑战程序设计竞赛(第二版)》P74-75。注意首先要对加油站以位置为关键字快排,不要遗忘把终点视作一个加油量为0的加油站,否则最终只能到达终点前的加油站。 1 /*优先队列*/ 2 #include 3 #include 4 #include 5 #include 6 using n... 阅读全文
posted @ 2015-07-14 10:19 iiyiyi 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 优先队列能够完成以下操作:♣插入一个数值♣按照某种条件获得数值,并且删除(如最大值,最小值)二叉堆的结构:儿子的值一定不小于父亲的值,数的节点按从上到下,从左到右紧密排列。二叉堆的操作:♣插入:在堆的末位插入该数值,不断向上交换,直至当前位置的父亲节点小于等于该数值♣删除:把堆中的最小值(根的位置)... 阅读全文
posted @ 2015-07-14 08:55 iiyiyi 阅读(253) 评论(0) 推荐(0) 编辑