1问题描述

有n个水平并排相邻的洞穴,从左到右依次编号1,2,...,n。某个洞穴中有一只兔子,该兔子每天晚上都会跳到相邻的洞穴中,有个农夫每天晚上会去一个洞穴逮兔子,请问该农夫至少要花多少天(或查看多少次洞穴)才能一定逮住该兔子?

2最优方案

农夫查看洞穴的编号依次为:2,3,...,n-3,n-2, n-2,n-3,...,3,2,一共查看了2(n-1)次,采用该方案一定能逮住兔子。

3方案解析

由于开始兔子的位置未知,原问题等价于:刚开始每个洞穴中有且仅有一只兔子,它们彼此互不干扰对方活动,洞穴足够大,可以容纳无穷只兔子,请问该农夫至少要花多少天(或查看多少次洞穴)才能逮住所有兔子?(若一个洞穴中有多只兔子,该农夫一次逮住该洞穴内的所有兔子)

刚开始,将奇数编号洞穴内的兔子染成红色,将偶数编号洞穴内的兔子染成绿色。如下,箭头表示农夫搜索位置。

下面不加证明地给出几个真命题:

  • 无论什么时候,所有红毛兔子所在洞穴编号奇偶性一致,所有绿毛兔子所在洞穴编号奇偶性一致,且与红毛兔子的奇偶性相反;

  • 无论什么时候,每个洞穴要么没有兔子,要么全是红毛兔子,要么全是绿毛兔子,不可能出现红毛兔子和绿毛兔子混在一个洞穴中的情况;

  • 不可能存在两只红毛兔子相邻,也不可能存在两只绿毛兔子相邻;

  • 每个红毛兔子想要越过其左边(或右边)的红毛兔子,必定会在某一洞穴内相遇;每个绿毛兔子想要越过其左边(或右边)的绿毛兔子,必定会在某一洞穴内相遇

当农夫从2号到n-1号洞穴扫描时,由于其行为是在兔子的行为(每次只能向相邻位置跑,在同一位置不能连续待两天)基础上,加上约束:只能向右跑,所以此时可以将农夫看成一只绿毛兔子,即农夫在向右扫描的过程中,要么遇到的洞穴为空,要么会逮住绿毛兔子;刚开始,所有绿毛兔子都在农夫右边,它们想要越过农夫,必定会在某个洞穴内相遇,即被逮住,所以当农夫扫描到第n-1个洞穴时,所有绿毛兔子都被逮住了。

当农夫从n-1号到2号洞穴扫描时,由于他在n-1处连续待了两天,其所在洞穴编号的奇偶性不再与绿毛兔子一致,反而与红毛兔子一致,因此此时可将农夫看成一只红毛兔子。所有红毛兔子都在农夫左边,同上分析,可得:当农夫扫描到2号洞穴时,所有红毛兔子都会被逮住。

综上所述:当农夫按照2,3,...,n-3,n-2, n-2,n-3,...,3,2的顺序搜索洞穴,一定会逮住所有兔子,由此可得,无论兔子初始在什么位置,农夫按照此路线一定能逮住这只兔子。

最少多少步才能逮住兔子相关推荐

  1. php程序员会查乙肝吗,程序员被骗婚自杀,大家为何逮住“乙肝”不放?

    原标题:程序员被骗婚自杀,大家为何逮住"乙肝"不放? 近日,"程序员自杀事件"引发社会广泛关注.社交移动WePhone的创始人兼开发者苏享茂在世纪佳缘婚恋网站结 ...

  2. 小刚明白锻炼的重要性,每天坚持走10000步。这一天,他已经走了一些步,想知道还要走多少步才能完成这一天的锻炼任务。请你帮帮他。

    小刚明白锻炼的重要性,每天坚持走10000步.这一天,他已经走了一些步,想知道还要走多少步才能完成这一天的锻炼任务.请你帮帮他. [输入] 仅一行.一个整数(大于等于0,且小于等于10000),表示已 ...

  3. 对话诸葛 io 孔淼:数据分析如何做,才能圈住用户?

    作者 | 朱雪妍 责编 | 夕颜 头图 | CSDN付费下载自视觉中国 出品 | CSDN(ID:CSDNnews) 2015年3月,诸葛io正式上线.彼时移动互联网刚刚兴起,应用市场呈细分态势,互联 ...

  4. 64层的汉诺塔问题究竟需要几步才能完成?

    汉诺塔 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺序 ...

  5. CodeForces 274B Zero Tree :每次选包含1节点的一棵子树,将该子树所有值都+1或者-1最少多少步可以使树值全部为0 :树型dp...

    将1设为树根节点,接下来就好想了,因为更新一个点对应到1的路全部都要更新 对于一个节点u,dfs他的所有儿子节点,返回最大需要+1的操作和最大需要-1的操作 再接合自身返回给父亲节点+1  -1的最大 ...

  6. 5g是多大一勺_爱他美不同段数的勺子分别对应多少克奶粉,兑多少水才能锁住营养?...

    为宝宝冲泡奶粉是每个耙耙麻麻的任务,但是宝宝每天要喝多少次奶?一次要多少奶粉?多少水?这些大问题经常困扰着新手耙耙麻麻. 每款配方奶粉都会在包装上标注明确的冲调比例,这一比例是根据各品牌奶粉的营养成分 ...

  7. 2021届应届生,web前端学到哪一步才能找到工作?

    来来,先看一下现在公司招聘前端工程师的基本要求. 如果是自学web前端的话,给以下几点建议 1.根据自己的情况,规划一个合理的学习计划,学习时长,学习内容,以及练习时间. 2.系统的web前端学习教程 ...

  8. c语言狗追兔子,速看!可以秒杀所有猎狗追兔问题的解题方法

    原标题:速看!可以秒杀所有猎狗追兔问题的解题方法 今天早上看到一题猎犬追兔子的题,用以前常用的比例法去秒杀,怎么也杀不出答案,后来仔细研究了一下,发现这题跟平常在做的题有一些区别,写出来大家一起看一下 ...

  9. 爱好-文化-冢:象冢

    ylbtech-爱好-文化-冢:象冢 传说,每一只预感到生命即将结束的大象,都会在有限生命的最后几天走到丛林的深处,沿着象道来到那传说中的归宿--象冢.象冢是埋葬一个种族的大象的地方. 1.返回顶部 ...

  10. BZOJ5329: [SDOI2018]战略游戏——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5329 https://www.luogu.org/problemnew/show/P4606 省选 ...

最新文章

  1. [patl2-018]多项式A除以B
  2. 2018-2019-1 20165201 实验五 通讯协议设计
  3. VTK:一个面向对象的可视化类库(zz)
  4. c++中内敛函数_C/C++求职者必备 23 道面试题,一道试题一份信心
  5. The 2020 ICPC Asia Macau Regional Contest J. Jewel Grab(数颜色+链表)
  6. AndroidStudio关联svn并上传代码到svn服务器上
  7. 从Google搜索联想到了jQuery
  8. PYTORCH-KALDI语音识别工具包
  9. 【snipaste下载和快捷键的修改】
  10. 服务器怎么读取加密狗信息,[求助]菜鸟请教:加密狗读取数据如下,请问如何分析这些数据,怎样复制这个加密狗!...
  11. matlab三极管名称,贴片三极管上的印字(与真实名称的对照表)(7)
  12. 深耕教学 常研常新——海门市高二历史教研活动掠影
  13. python 下载qq群文件_利用多线程快速下载腾讯QQ群文件的方法
  14. 【游戏面包屑】时间回溯·逆流吧
  15. 高德地图上画图!和3D绘制区域
  16. 三十而立的用友,未来的路将向何方?
  17. 多CPU ,多核和进程以及多线程之间的关系
  18. 业余LaTeX学习笔记(一)-引言
  19. 安搭Share:小康时代新青年
  20. 不用迭代算法而快速实现的jsp树结构

热门文章

  1. java面试宝典及答案_最新Java面试宝典及答案
  2. 如何给PDF文件添加页码
  3. 课程设计---族谱管理系统(c++)
  4. 滚动交互引导界面的Ouroboros
  5. finecms aip.php漏洞,FineCMS漏洞挖掘
  6. 【链环科技】微信公众号商城开发优势
  7. 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(4)——无限猴子定理
  8. python培训骗局
  9. Apache JMeter 5.1.1 Win 10 环境变量配置
  10. Redis 使用lua脚本最全教程