puzzle(0611)《组合+图论》追捕问题

目录

一,追及问题

1,警察和小偷

2,旋转的4个硬币

3,抓狐狸

二,围堵问题

三,追及+围堵


一,追及问题

1,警察和小偷

如下图,警察先走,警察和小偷轮流一人走一步,每次只能沿着线走到相邻的圆圈,

问警察能不能抓到小偷?

答案:能

首先编号

如果警察走到5,那么小偷就只能走到1

然后如果警察走到6,那么小偷就只能走到2

然后如果警察走到4,那么小偷无论是走到1还是5,下一步都会被警察抓住。

2,旋转的4个硬币

问题:

有一个正方形棋盘,每个顶点上放了一枚硬币。你将要玩一个游戏,规则如下:

1、你不知道游戏开始时硬币的状态(各自是哪一面朝上),但已知它们不是同一面

2、游戏中任何时候你都无法看到任何硬币

3、每一轮你可以指定任意个硬币(指定位置),工作人员会将它们同时翻面.

3、每轮之后,如果棋盘上的所有硬币都是同一面朝上,也就是说都是正面或者都是背面,则判定你胜利,游戏结束

4、如果没有满足上述条件,棋盘将会被随机旋转(90°的整数倍)并进入下一轮,而且你也不知道转了多少度

请问最坏情况下最少需要几轮就可以保证获得胜利?

思路:

首先推理出,其实只需要3种操作:上、上下、上左。因为任意操作,其实都和这3个操作是等价的(轮换对称性)

其次根据这3个操作,很容易推出最快的方案,有7步。

答案:

按照 上下、上左、上下、上、上下、上左、上下 7步去操作,最多7步就胜利了。

PS:

这题抽象成图论的问题,其实和警察和小偷的规则差不多。当然,中间一些转化方法还是需要稍微思考下,转化成的图也稍微复杂一点。

3,抓狐狸

五个洞排成一排,其中一个洞里藏有一只狐狸。每个夜晚,狐狸都会跳到一个相邻的洞里;每个白天,你都只允许检查其中一个洞。怎样才能保证抓住狐狸?   

答案:

依次检查第2、2、3、4、4、3、2个洞即可。

首先检查第2个洞,如果没抓到狐狸,说明这时狐狸可能在第1、3、4、5个洞

然后检查第2个洞,如果没抓到狐狸,说明这时狐狸可能在第3、4、5个洞

然后检查第3个洞,如果没抓到狐狸,说明这时狐狸可能在第2、4、5个洞

然后检查第4个洞,如果没抓到狐狸,说明这时狐狸可能在第1、3、5个洞

然后检查第4个洞,如果没抓到狐狸,说明这时狐狸可能在第2个洞

然后检查第3个洞,如果没抓到狐狸,说明这时狐狸可能在第1个洞

然后检查第2个洞,就一定会抓到狐狸了。

二,围堵问题

围住神经猫

三,追及+围堵

老虎棋 老虎对羊是追及问题,羊对老虎是围堵问题

资源下载链接为: https://pan.quark.cn/s/a1799e63815c 《妙趣横生的算法(C语言实现)》是一本适合不同层次读者的书籍。对于算法初学者来说,它是入门教程;对于学过C语言程序设计的人,是进一步提升的读物;对于有经验的程序设计人员,可作为巩固和提高编程水平、查阅算法实现和数据结构知识的参考;对准备参加相关面试的读者,也能提供帮助。其最大特色是实例丰富、题材新颖有趣、实用性强,将理论融入实践,旨在帮助读者理解算法,提升C语言编程能力,培养编程兴趣,巩固C语言知识。 全书分两部分共10章。第一部分为基础篇,第1章介绍数据结构基础,包括顺序表、链表、栈、队列、树结构、图结构等的定义、操作及实例分析。第2章讲解常用的查找与排序方法,如顺序查找、折半查找、直接插入排序、选择排序等。第3章阐述常用的算法思想,如穷举法、递归与分治、贪心算法、回溯法、数值概率算法等。 第二部分为编程实例解析。第4章是编程基本功,涉及字符类型统计、ASCII码计算、嵌套if-else语句、switch语句译码器、闰年判断、指针变量作参数、矩阵运算、位运算、文件读写、程序运行时间记录、进制转化、特殊图案打印等内容。第5章和第6章为数学趣题,包括舍罕王的失算、最大公约数与最小公倍数、歌德巴赫猜想、三色球问题、百钱买百鸡问题、回文数字判断、填数字游戏求解、新郎和新娘、爱因斯坦的阶梯问题、水仙花数寻找、猴子吃桃问题、兔子产仔问题、质因数分解等。第7章是数据结构趣题,如顺序表就地逆置、动态数列排序、链表归并、约瑟夫环、进制转换器、回文字符串判定、括号匹配等。第8章为数值计算问题,包括递推化梯形法求定积分、低阶定积分求解、迭代法开平方、牛顿法解方程、欧拉方法求解微分方程等。第9章是综合题,如破碎的砝码、24点问题、马踏棋盘、0-1背包问题、八皇后问题求解、文件加密解密系统等。第10章为算法设
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值