问题描述

有NNN个怪兽,MMM个弓箭,每个怪兽有生命值,每个弓箭有杀伤力和价值,每个怪兽只能用一支弓箭攻击,弓箭杀伤>=怪兽生命时可消灭怪兽,求使用弓箭的最小价值。如无法消灭,返回-1。

问题解析

因为目标是消灭怪兽,而且每个怪兽只能被一只弓箭攻击,所以我们应该在优先考虑消灭的基础上,选择最小价值的弓箭。根据这个推理,我们可以将怪兽的生命值非升序排序,并同时将弓箭按照攻击力进行非升序排序。最后,循环遍历能消灭当前怪兽的弓箭,并使用优先队列进行维护,选择价值最小的那一只即可解决该问题。

代码解析

N, M = map(int, input().split())
if M < N:return -1monst_list = list(map(int, input().split())) # N
monst_list.sort(key=lambda x: -x)value_list = list(map(int, input().split())) # M
attack_list = list(map(int, input().split())) # M
arrow_list = [(value, attack) for value, attack in zip(value_list, attack_list)] # M
arrow_list.sort(key=lambda x: -x[1])del attack_list
value_list = []res = 0
j = 0
for i in range(N):while j < M and arrow_list[j][1] >= monst_list[i]:hp.heappush(value_list, - arrow_list[j][0])j += 1if not value_list:return -1else:res += -value_list.pop()return res

阿里2020.4.1实习笔试题——攻击怪兽相关推荐

  1. 2021.4.11 字节跳动实习笔试题---情报解密

    2021.4.11 字节跳动实习笔试题-情报解密 题目内容 题目内容: 给你一个字符串,该字符串中有数字,字母(字母只有大写字母)以及一些其他的字符(例如:%,.等),如果首字母为字母或者数字的话,就 ...

  2. 2014.3.29阿里巴巴暑期实习笔试题分析

    參考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 以下中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 ...

  3. C语言单链表实现FCFS算法,2014腾讯实习笔试题

    2014腾讯实习笔试题 1. 关于二叉树,下面说法正确的是() A. 对于N个节点的二叉树,其高度为nlog2n; B. 一个具有1025个节点的二叉树,其高度范围在11~1025之间 C. 二叉树的 ...

  4. 美团点评2020年测试工程师笔试题

    VOL 155 04 2020-09 今天距2021年118天 这是ITester软件测试小栈第155次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  5. 搜狗2020年测试工程师笔试题

    VOL 151 21 2020-08 今天距2021年132天 这是ITester软件测试小栈第151次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  6. 招商银行信用卡2019届实习笔试题

    招商银行信用卡2019届实习笔试题 题目表述:如图 思路:有向图中找回环.(具体方法和原理可以参考相关博客)同时标记那些指向回环的顶点.全部的顶点去掉被标记的顶点,输出就是答案了.完全按照题目中的提示 ...

  7. linux研发工程师笔试题,2015-8-29阿里校园招聘研发工程师笔试题

    2015-8-29阿里校园招聘研发工程师笔试题 1. 某团队有2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的至少有()人 A. 3  B. 4  C. 5 ...

  8. 潇洒郎: 去哪儿2021届/2020年开发岗笔试题分享

    去哪儿2021届/2020年开发岗笔试题分享 1. 2020年,直播已经成为去哪儿网酒店预售的新武器, 去哪儿网CEO刚哥想从公司的m名员工中挑选n名参与自己的直播,已知m小于100请问一共有多少种选 ...

  9. 育碧Web实习笔试题分享

    育碧的Web实习笔试题分享 笔试题目一共有20道,主要有选择题,简答题以及编程题,但是大部分都是简答题,题干是全英语的,但是大致题意还是能够读懂.考查知识大体涉及JavaScript.HTTP.CSS ...

最新文章

  1. 用Python做一个翻译软件,还怕英语不好?
  2. Windows 8的无线设置后,竟不能直接更改,目前知道可以通过命令行解决
  3. 2016年04月28日-统一沟通之OCS 2007 R2-公开课-通知
  4. 模拟任务调度算法 C语言 【留学生作业】
  5. Android 四种启动模式
  6. .Net下采用Base64编码的一个封装好的类库
  7. 算法导论第三版 第3章习题答案
  8. 制作一个简单HTML个人网页网页(HTML+CSS)web前端大作业
  9. LeetCode——二叉树的前中后序遍历
  10. tl494cn逆变器电路图_TL494CN逆变器
  11. C# 嵌入式数据库LiteDB
  12. 很多次游戏的最后取胜实际上都有很强的偶然性
  13. 华为机试真题 C++ 实现【数字涂色】
  14. python3.6.6安装插件_linux python3.6安装uwsgi报错
  15. 【转载】一个游戏地图生成的方案
  16. 速度收藏 | 100+大数据开源处理工具汇总
  17. 基于DCT变换的JPEG图像压缩
  18. 微信第三方开发行业解决方案
  19. 虚拟机中linux磁盘空间不足
  20. safari下载中文文件名乱码

热门文章

  1. mac与linux服务器之间使用ssh互通有无
  2. 逐梦旅程学习笔记 DirectX开发入门01:应用程序基本框架
  3. vue3 Composition ApI总结
  4. 对IoC与DI浅显易懂的讲解
  5. 美团2016招聘笔试:奇数位丢弃
  6. 实用英语:女生拒绝男生搭讪的经典英语句
  7. DataGrip入门小tips
  8. [弱校联萌2016]2016弱校联盟十一专场10.2
  9. 断流测试软件,不用担心WiFi断流了!亲身测试:试了这个方法后,信号杠杠的...
  10. 两台W7系统的电脑,A电脑可以ping通B电脑,B电脑ping不通A电脑。