前两天参加了哔哩哔哩1024程序员节活动,看到了几个有意思的算法题,分享一下。(文末有全部答案)

文章目录

  • 1.蚂蚁爬木杆
  • 2.爬台阶
  • 3.中位数
  • 4.香钟
  • 5.吃烤鸭
  • 6.报30
  • 7.老鼠吃毒药

1.蚂蚁爬木杆

有一根长27厘米的细木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米这五个位置上各有一只蚂
蚁。木杆很细,不能同时通过两只蚂蚁。开始时,蚂蚁的头朝左还是朝右是任意的,它们只会朝前走或
调头,但不会后退。当任意两只蚂蚁碰头时,两只蚂蚁会同时调头朝反方向走。假设蚂蚁们每秒钟可以
走一厘米的距离,求所有蚂蚁都离开木杆的最短时间和最长时间。(本题由UP主@IT私塾提供)

解题思路:

我们可以这么想,在相遇时,两只蚂蚁可以穿过对方的身体,只不过是交换了身份而已,即把A看作B,B看作A,即他们仍朝各自的方向行走,而互不受影响。那么从远端出去是花费时间最长的,从近端出去是花费时间最短的;所有蚂蚁都从远端离开其中花费时间最长的是题中求的最长时间,所有蚂蚁都从近端离开其中花费时间最长的是题目求的最短时间。

sticklength = 27    # 木棍长度
antnum = 5      # 蚂蚁数量
position = [3, 7, 11, 17, 23]   # 蚂蚁位置
speed = 1   # 速度max = 0   # 最长时间
min = 0  # 最短时间
tmp_max = 0
tmp_min = 0for p in position:if p < (sticklength/2):   # 木棍左半边tmp_max = (sticklength-p) / speedtmp_min = p / speedelse:   # 木棍右半边tmp_max = p / speedtmp_min = (sticklength - p) / speedif max < tmp_max:max = tmp_maxif min < tmp_min:min = tmp_minprint("max: {0}, min: {1}".format(max, min))

max: 24.0, min: 11.0

2.爬台阶

一个小孩练习爬台阶,一共10级台阶,小孩可以一次向上选择爬1-3级。但是第3级和第6级台阶被施加
了魔法,小孩一旦踏上就会停下来就开始跳《新宝岛》。那么,不让小孩跳《新宝岛》的爬法一共有多
少种?(本题由UP主@魔法小分队队长提供)

解题思路:

可以利用递推法,要想到第10层有三种办法,从第9层向上爬1层、从第8层向上爬2层、从第7层向上爬3层,依此类推,有公式:fx = fx-1 + fx-2 + fx-3,但要注意避开第3层和第6层。也就是说f9 = f8+f7+0,因为不能踏上f6。

def f(n):if n == 1:return 1elif n == 2:return 2elif n == 3 or n == 6:return 0if n > 3:return f(n-1)+f(n-2)+f(n-3)print(f(10))

42

3.中位数

现有5个元素,它们各不相同,且两两之间可比较。我们可以通过反复比较两个元素的大小,来找出5个元素中的中位数。请问最少用多少次比较,可以确保总能找到 5个元素的中位数?(本题由UP主@算法主义提供)

4.香钟

香钟(又名火绳钟)是一种使用燃烧香计时的方法,采用榆树皮粉加入少量秸秆和自然元素,配合一定比例的水搅拌均匀后倒模制成香,根据倒模出不同长度、粗细的香,经过燃烧测量可以生产出各种单位时间的计时香,例如辰香(2小时),刻香(15分钟)等。土堡会战中,上将军安排左右前卫营于丑时出发,约定出发后5刻(1小时15分)分别从敌人大本营西侧与北侧奇袭敌营。营中刻香由于保管不当尽毁,目前营中只有辰香,且辰香不能折断也无法均匀分割,作为左前卫营行军参谋的你要拿出具体的计时方案。请问要想确定出5刻的时长,至少需要多少根辰香?(本题由UP主@黑马程序员提供)

答案:
一共需要四根,记为a、b、c、d。
首先,a两端同时点燃,bc一端点燃,等到a燃尽;
然后,b点燃另一端,d点燃一端,等b燃尽;
最后,点燃c另一端,等c燃尽,d剩下的就是5刻。

5.吃烤鸭

期末考试结束了,老师决定带学生们去卷饼店吃烤鸭饼。老师看到大饼和鸭子,搞了一个活动:每人可以拿走一张饼,谁卷到的食物美味程度总和最高,谁就能获得称号:卷王之王!Vita很想得到“卷王之王”称号,他的大饼可以装下大小总和不超过500的食物,现在有7块鸭肉和6根黄瓜,每份食物都有它的大小和美味程度。每块鸭肉的大小:85、86、73、66、114、51、99 每块鸭肉的美味程度:71、103、44、87、112、78、36 每根黄瓜的大小:35、44、27、41、65、38 每块黄瓜的美味程度:41、46、13、74、71、27 老师要求大饼里至少有一块鸭肉和一根黄瓜。请问,Vita卷到的食物美味程度总和最大是多少?(本题由UP主@小学生Vita君提供)

解题思路:
这道题我是用性价比法做的,先统计一下数据,计算出性价比,按性价比选择,最后微调。


按照性价比由高到低排列:

我们先把性价比高的选了,【瓜4+肉6+肉4+肉2+瓜1+瓜5+瓜2】这里重量是388,轮到鸭肉5时,重量为502刚好超出500限制,但鸭肉5美味度112我们肯定要选它,所以选【瓜4+肉6+肉4+肉2+瓜1+肉5】,这里重量393。再从剩下的里面选性价比高的黄瓜5,这是重量是458,在选一个黄瓜6,重量496。

最终答案【瓜4+肉6+肉4+肉2+瓜1+肉5+瓜5+瓜6】重量496,美味度593。

6.报30

半仙君和粉丝两人打赌,每人喊1-3中的一个数,谁先喊到30谁赢,请问先喊几有稳赢的可能性?(本题由UP主@半仙君_提供)

解题思路:

跟第二题,小孩在魔法台阶上练《新宝岛》一样,递推。
fx=fx-1 + fx-2 + fx-3,谁先喊道30谁赢,所以要抢喊26,这样对方再喊破喉咙也不可能一次喊到30,依此类推,要想喊26就要抢喊22,依此类推18,14,10,6,2,所以开始喊2赢得几率大。

7.老鼠吃毒药

共有n瓶药和4个老鼠,其中只有一瓶毒药,老鼠吃了1天就挂了,现在仅有1天的时间让你找出毒药,请问n最多等于几?(本题由UP主@半仙君_提供)

解题思路:
将瓶子的数量转换为二进制数,然后让第1只老鼠喝掉所有二进制数右起第一位是1的瓶子,让第2只老鼠喝掉所有二进制数右起第二位是1的瓶子,依此类推。一天后,如果第2只老鼠没死,就知道毒药瓶子的二进制编号中,右起第二位是0…,每只老鼠的死活都能确定出二进制数的其中一位,由此便可知道毒药瓶子的编号了,如果都没死,那么就是0号瓶子。

更多内容请关注公众号【李哥技术笔记】,回复1024,下载完整版答案

免费分享超过1000本计算机类电子书,包含编程语言、大数据、机器学习、校招面试经验等

2021哔哩哔哩1024程序员节日第一弹:算法与安全相关推荐

  1. 2021哔哩哔哩1024程序员节日第二弹:安全攻防挑战赛

    文章目录 1.安防第一题 2.安防第二题 3.安防第三题 4.安防第四题 567 1.安防第一题 1024程序员节,大家一起和2233参与解密游戏吧~ happy_1024_2233: e9ca6f2 ...

  2. YDOOK:CSDN 1024 程序员节日专文:Ubuntu remotely install cuda

    YDOOK:CSDN 1024 程序员节日专文:Ubuntu remotely install cuda © ydook.com ydook.cn shiye.work 文章目录 YDOOK:CSDN ...

  3. Java面试总结(2021优化版)发布1024程序员节

    文章目录 Java面试总结(2021优化版)文章汇总 关于公众号 1024程序员节 Java面试总结(2021优化版)文章汇总 Java面试总结(2021优化版)针对读者反馈的一些错误问题进行了修改, ...

  4. 1024程序员节日——【玉剑传说 武剑仙 至臻】(今天是白嫖的日子~)

    从国庆就开始肝,肝到今天终于被我白嫖到了~ 不过好像还能白嫖一个1024徽章 哈哈哈 (露出了白嫖的笑容!)

  5. 1024 程序员节狂欢盛会,等了一年终于来了(内附大会日程)

    风起岳麓,扶摇而上,约战湘江,谁与争锋!以"算力新时代·开源创未来"为主题的第三届 2022 长沙·中国 1024 程序员节于 10 月 23 日 - 25 日强势来袭!院士领衔. ...

  6. 手把手教你开发一款1024程序员节日历提醒服务

    目录 前言 正文 一.主动查询 1. 准备节日数据集 2. 定义查询接口 3. 查询服务 4. 接口演示 二.回调通知 结尾 前言 关于这次程序员节1024征文的内容,自己确实想了好久,作为一名后端研 ...

  7. 1024程序员节,向改变世界的程序员致敬

    前个言 正值1024程序员节日来临之际,今天心血来潮,想写篇文章来为我们这些猿猿致敬,也算了却一个心愿,让我们这些猿猿们以自己从事的职业为豪为荣. 可能我们的着装遭人吐槽,可能我们的玩笑经常别人听不出 ...

  8. 1024程序员节:北京尚学堂向改变世界的程序员致敬

    2019独角兽企业重金招聘Python工程师标准>>> 写在前面 正值1024程序员节日来临之际,今天心血来潮,想写篇文章来为我们这些猿猿致敬,也算了却一个心愿,让我们这些猿猿们以自 ...

  9. 哔哩哔哩2021年1024程序员节算发与安全答题——解析答案

    哔哩哔哩2021年1024程序员节算发与安全答题 最后图片仅供参考

最新文章

  1. pandas.DataFrame.groupby
  2. AI 玩微信跳一跳的正确姿势:跳一跳 Auto-Jump 算法详解
  3. 计算机文件教案,四年级计算机教案文件.doc
  4. Java 字符的验证
  5. Spring Boot功能实战
  6. linux es数据库 head,centos7安装Elasticsearch及Es-head插件详细教程(图文)
  7. 为系统加载右键注册控件选项【VB 注册控件】
  8. windows server 2012r2 快速启动模式部署remoteapp,检查兼容性,显示有挂起的重新启动...
  9. C++视频和讲义下载地址
  10. swagger 基础入门
  11. JSP连接SQLServer数据库特别要注意一个小问题得到解决
  12. Window平台编译log4cpp使用方法记录 (二)
  13. ubuntu20.10设置桌面共享的三种方式
  14. 五万字,57道hadoop大厂高频面试题,每一字都细心打磨,强烈建议收藏!
  15. MyX5TbsDemo【体验腾讯浏览服务Android SDK (完整版)】
  16. 马云关于计算机的名人名言,马云名人名言
  17. Shema与数据类型优化
  18. 解决使用Edge(必应)浏览器搜索之后显示untitled的问题
  19. 四川一度智信|小白卖家不懂选品?
  20. C中strchr()函数用法

热门文章

  1. Vue中使用echart实现中国地图统计图
  2. 使用阿里云的国内镜像仓库地址
  3. 一点一滴岗位测试答案_【一点资讯】部编版语文六年级下第三单元综合测试卷(含答案)...
  4. 将扣出的章加入wps里面
  5. 获取浏览器窗口高度和宽度兼容IE
  6. 全球与中国玻璃通孔中介层市场深度研究分析报告
  7. python爬取豆瓣电影top250_【Python3爬虫教程】Scrapy爬取豆瓣电影TOP250
  8. hevc AMVP模式
  9. 自然数因式分解最小和
  10. Cheat sheet FOR Python Packages