<笔试> 小美的跑腿代购 堆排序heapq的使用

本文介绍了如何使用Python的heapq模块解决美团笔试中的一道跑腿代购问题。小美需要从n个订单中选择m个以最大化收益,每个订单有跑腿价格和加价规则。通过堆排序,可以找到获利最大的订单组合,并按字典序输出选择的订单编号。文章强调了在输出前对答案进行堆排序的必要性以及heapq库的相关操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:小美的跑腿代购_美团笔试题_牛客网
来源:牛客网
 

小美有n个订单可以接,订单编号是1~n,但是因为订单的时效性,他只能选择其中m个订单接取,精明的小美希望自己获利是最大,已知,一份订单会提供以下信息,跑腿价格v,商品重量w kg,商品每重1kg,代购费用要加2元,而一份订单可以赚到的钱是跑腿价格和重量加价之和。小美应该选择哪些订单,获得的钱最多。

请你按照选择的订单编号的从小到大顺序,如果存在多种方案,输出订单编号字典序较小的方案。

我的代码没法按照字典序排序:

n,m=map(int,input().split())
a=[]
for i in range(n):
    n1,n2=map(int,input().split())
    a.append([i+1,n1+n2*2])
a.sort(key=(l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值