寒假培训——优先队列

每个题目都有超链接,点击可以跳转到题目界面!!!

买饭-优先队列

解题思路:
1.本题应该用结构体类型的优先队列来做,用来储存时间和序号;
2.要想时间最小,应该时间短的在前;
3.平均等待时间的计算方式:
假设有三个时间 12 34 8;
对应序号为1 2 3
则排序完的序号为3 1 2
平均时间为(82+121+34*0)/3;

在这里插入图片描述

合并果子-优先队列

本题应该利用“贪心”算法,要想总的力气最少就要每一步的力气都最小。
分析:
1:按照从小到大排列;
2:每次去除前两个数,合并后的数再压入队列(一定要再压入);
3:再用一个变量累加取出的两个数的和。

在这里插入图片描述

序列合并-优先队列

首先,把A和B两个序列分别从小到大排序,变成两个有序队列。这样,从A和B中各任取一个数相加得到N2个和,可以把这些和看成形成了n个有序表/队列:
A[1]+B[1] <= A[1]+B[2] <= … <= A[1]+B[N]
A[2]+B[1] <= A[2]+B[2] <= … <= A[2]+B[N]
……
A[N]+B[1] <= A[N]+B[2] <= … <= A[N]+B[N]
接下来,就相当于要将这N个有序队列进行合并排序:
首先,将这N个队列中的第一个元素放入一个优先队列中;
然后,每次取出堆中的最小值。若这个最小值来自于第k个队列,那么,就将第k个队列的下一个元素放入堆中。
时间复杂度:O(NlogN)。

在这里插入图片描述

合成陨石-优先队列

与合并果子完全相同,只不过要注意本题为多组。每循环一次要将队列清空,不能用memset!!!
在这里插入图片描述

堆-优先队列

在这里插入图片描述

瑞瑞的木板-优先队列

题意是合并果子的逆过程,本质还是一样的。要开long long;
在这里插入图片描述
本题不能用以下方法做,不能先把最长的剪出来。
在这里插入图片描述

桐桐的新闻系统-优先队列

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值